name: Build and deploy Python app to Azure Web App - poweron-preprocessing on: push: branches: [main] workflow_dispatch: jobs: build: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout uses: actions/checkout@v4 # ---------- BACKEND / PYTHON ---------- - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install uv uses: astral-sh/setup-uv@v6 # ---------- ARTIFACT ---------- - name: Upload artifact for deployment jobs uses: actions/upload-artifact@v4 with: name: python-app path: | . !venv/ !.venv/ !.git/ !.cache/ deploy: runs-on: ubuntu-latest needs: build permissions: id-token: write contents: read steps: - name: Download artifact from build job uses: actions/download-artifact@v4 with: name: python-app - name: Login to Azure (OIDC) uses: azure/login@v2 with: client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_AA4B9998A69E4C5C8FDF357E3FEAADD5 }} tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_CC57AD1F29D44DDA960AE3EAC6D2C27A }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_4CD1D97C506D403E8E284466DB4E7898 }} - name: Deploy to Azure Web App uses: azure/webapps-deploy@v3 with: app-name: "poweron-preprocessing" slot-name: "Production" package: . # reuse the downloaded artifact folder