I am having a GitHub action where everything looks like a success, however it seems like the application is not deployed.
yaml:
name: Build and deploy Python app to Azure Web App - fast-api-port
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python version
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Create and start virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install dependencies
run: pip install -r requirements.txt
# Optional: Add step to run tests here (PyTest, Django test suites, etc.)
- name: Zip artifact for deployment
run: zip release.zip ./* -r
- name: Upload artifact for deployment jobs
uses: actions/upload-artifact@v4
with:
name: python-app
path: |
release.zip
!venv/
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
permissions:
id-token: write #This is required for requesting the JWT
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: python-app
- name: Unzip artifact for deployment
run: unzip release.zip
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_7C6D249DE594426EBD4725CC0D066145 }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_6399B578ADAF41E095CA377A465B8BB1 }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_527AF2EA4A6A4A8BAC99ECB57B6CE6AB }}
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v3
id: deploy-to-webapp
with:
app-name: 'fast-api-port'
slot-name: 'Production'
All the steps in the logs succeeds:
The logs says 0 errors and 0 warnings. However when I go into the file manager I cant find any files uploaded and may be why I cant get my app to run:
Am I missing something or should I not be able to see the files? I test with an FTP connection just to be sure but no .py files any where?
2
Answers
As I mention in my comment when deploying a python application to Azure Web Apps (Linux), the files are bundled into a
output.tar.gz
during the deployment process.This archive contains all the files and dependencies like virtual environment, requirements.txt to run an application on Azure App Service.
We can inspect the content by downloading the
output.tar.gz
folder.In the Kudu console, you can find the
output.tar.gz
file under File Manager -> site/wwwroot.Check with this link to upload your githup code and integrate with Azure AI .
USEFULL link: https://youtube.com/playlist?list=PLJoEt7pdSz_2g8-S0okMJkh0apGRcRu29&si=8vMFnmIxOYYd6Ro1