Skip to content

The Github actions workflow that Azure creates automatically for deploying function apps does not work. #175

@Tylersuard

Description

@Tylersuard

Hello. I am able to deploy my Azure Function App from VS Code using the Function App extension. However, I cannot deploy using the Github Actions file that was generated for me by Azure when I connected my function app to my repo. None of my functions are found when I use it. Here is what Azure generated for me:

Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action

More GitHub Actions for Azure: https://github.com/Azure/actions

More info on Python, GitHub Actions, and Azure Functions: https://aka.ms/python-webapps-actions

name: Build and deploy Python project to Azure Function App

on:
push:
branches:
- main
workflow_dispatch:

env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
PYTHON_VERSION: '3.11' # set this to the python version to use (supports 3.6, 3.7, 3.8)

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read #This is required for actions/checkout

steps:
  - name: Checkout repository
    uses: actions/checkout@v4

  - name: Setup Python version
    uses: actions/setup-python@v5
    with:
      python-version: ${{ env.PYTHON_VERSION }}

  - 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

  - name: Upload artifact for deployment job
    uses: actions/upload-artifact@v4
    with:
      name: python-app
      path: |
        release.zip
        !venv/

deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write #This is required for requesting the JWT
contents: read #This is required for actions/checkout

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_ }}
      tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_ }}
      subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_ }}

  - name: 'Deploy to Azure Functions'
    uses: Azure/functions-action@v1
    id: deploy-to-function
    with:
      app-name: 'xxx-app-name-here'
      slot-name: 'Production'
      package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions