Azure Function app when deployed thru GitHub Actions Wokflow do not show the functions in the function app

Venkat Ambati 5 Reputation points
2025-03-07T21:10:13.8033333+00:00

Azure Function app when Deployed thru CICD with GitHub actions workflow, will not display the function in the function app, however the same solution deployed with Visual Studio Publish profile do show all the function in the function app.

Here is the log for host folder in Kudu, which did not recognize the functions.

2025-03-07T20:10:51.188 [Information] 0 functions found (Custom)

  • 2025-03-07T20:10:51.189 [Information] 0 functions loaded

2025-03-07T20:10:53.298 [Information] Host lock lease acquired by instance ID '82e23cc3cd92ae0c65e2cb2296583539'.

2025-03-07T20:11:18.921 [Information] Loading functions metadata

2025-03-07T20:11:18.924 [Information] Reading functions metadata (Custom)

2025-03-07T20:11:18.924 [Information] 0 functions found (Custom)

2025-03-07T20:11:18.924 [Information] 0 functions loaded

2025-03-07T20:11:18.924 [Information] Loading functions metadata

2025-03-07T20:11:18.925 [Information] Reading functions metadata (Custom)

2025-03-07T20:11:18.925 [Information] 0 functions found (Custom)

2025-03-07T20:11:18.925 [Information] 0 functions loaded

Here is the functions.metadata file which has the definition for all the 4 functions.

[

{

"name": "ReceiveShippoNotifications",

"scriptFile": "func-WarehouseBoxSys.dll",

"entryPoint": "func_WarehouseBoxSys.ReceiveShippoNotifications.Run",

"language": "dotnet-isolated",

"properties": {

  "IsCodeless": false

},

"bindings": [

  {

    "name": "req",

    "direction": "In",

    "type": "httpTrigger",

    "authLevel": "Function",

    "methods": [

      "get",

      "post"

    ],

    "properties": {}

  },

  {

    "name": "$return",

    "type": "http",

    "direction": "Out"

  }

]

},

{

"name": "RetryNotificationsInFailedQueue",

"scriptFile": "func-WarehouseBoxSys.dll",

"entryPoint": "func_WarehouseBoxSys.RetryNotificationsInFailedQueue.Run",

"language": "dotnet-isolated",

"properties": {

  "IsCodeless": false

},

"bindings": [

  {

    "name": "message",

    "direction": "In",

    "type": "queueTrigger",

    "queueName": "%FailedQueueName%",

    "connection": "AzureWebJobsStorage",

    "properties": {

      "supportsDeferredBinding": "True"

    }

  }

]

},

{

"name": "RetryNotificationsInPoisonQueue",

"scriptFile": "func-WarehouseBoxSys.dll",

"entryPoint": "func_WarehouseBoxSys.RetryNotificationsInPoisonQueue.Run",

"language": "dotnet-isolated",

"properties": {

  "IsCodeless": false

},

"bindings": [

  {

    "name": "message",

    "direction": "In",

    "type": "queueTrigger",

    "queueName": "%PoisonQueueName%",

    "connection": "AzureWebJobsStorage",

    "properties": {

      "supportsDeferredBinding": "True"

    }

  }

]

},

{

"name": "UpdateShippoTrackingStatus",

"scriptFile": "func-WarehouseBoxSys.dll",

"entryPoint": "func_WarehouseBoxSys.UpdateShippoTrackingStatus.Run",

"language": "dotnet-isolated",

"properties": {

  "IsCodeless": false

},

"bindings": [

  {

    "name": "message",

    "direction": "In",

    "type": "queueTrigger",

    "queueName": "%NotificationQueueName%",

    "connection": "AzureWebJobsStorage",

    "properties": {

      "supportsDeferredBinding": "True"

    }

  }

]

}

]

Here is the Function action in CICD pipeline

`- name: List output directory`

run: ls -R '${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/build'

- name: 'Deploy Azure Functions Action'

uses: Azure/functions-action@v1.5.1

id : WarehouseBoxsysFunctions

with:

app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}

package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/build

publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_VAL_PUBLISH_PROFILE }}

# Enable build action from Kudu when the package is deployed onto the function app. This will temporarily change the SCM_DO_BUILD_DURING_DEPLOYMENT setting for this deployment. To bypass this and use the existing settings from your function app, please set this to an empty string ''. To enable remote build for your project, please set this and 'enable-oryx-build' both to 'true'. By default, GitHub Action respects the packages resolved in GitHub workflow, disabling the redundant build action from Kudu endpoint. (default: 'false').

#scm-do-build-during-deployment: false

# Use Oryx Build from Kudu when the package is deployed onto the function app. (Linux functions only). This will temporarily change the ENABLE_ORYX_BUILD setting from this deployment. To bypass this and use the existing settings from your function app, please set this to an empty string ''. To enable remote build for your project, please set this and 'scm-do-build-during-deployment' both to 'true'. By default, GitHub Action respects the packages resolved in GitHub workflow, disabling the redundant build action from Kudu endpoint. (default: 'false').

#enable-oryx-build: false

remote-build: true

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
5,909 questions
{count} vote

3 answers

Sort by: Most helpful
  1. RithwikBojja 3,055 Reputation points Microsoft External Staff Moderator
    2025-03-12T05:20:49.5933333+00:00

    Hi @Venkat Ambati,

    I am able to deploy and functions are shown in Overview section by following below approach:

    Firstly, created functions and later deployed to GitHub using below commands:

    
    cd "Function App folder path"
    
    git init
    
    git add .
    
    git commit -m "first commit"
    
    git remote add origin https://github.com/Name/Repository.git
    
    git push -u origin main
    
    

    enter image description here

    Then while creating the function app, In deployment action, Enable Continuous deployment and give organization, repo and branch details as below:

    enter image description here

    Then in Deployment Center, click on Build/Deploy Logs :

    enter image description here

    Then wait for some time for the function to deploy:

    enter image description here

    Workflow file:

    
    name: Build and deploy dotnet core app to Azure Function App - test12325
    
    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
    
      DOTNET_VERSION: '8.0.x' # set this to the dotnet version to use
    
    jobs:
    
      build-and-deploy:
    
        runs-on: windows-latest
    
        steps:
    
          - name: 'Checkout GitHub Action'
    
            uses: actions/checkout@v4
    
          - name: Setup DotNet ${{ env.DOTNET_VERSION }} Environment
    
            uses: actions/setup-dotnet@v1
    
            with:
    
              dotnet-version: ${{ env.DOTNET_VERSION }}
    
          - name: 'Resolve Project Dependencies Using Dotnet'
    
            shell: pwsh
    
            run: |
    
              pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
    
              dotnet build --configuration Release --output ./output
    
              popd
    
          - name: 'Run Azure Functions Action'
    
            uses: Azure/functions-action@v1
    
            id: fa
    
            with:
    
              app-name: 'test12325'
    
              slot-name: 'Production'
    
              package: '${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/output'
    
              publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_4391F28A09AE484F8E0AA996C24084AF }}
    
    

    Functions are shown:

    enter image description here

    Check the deployment status :

    enter image description here

    By following the above approach, I am able to deploy and work with my functions. even after using above approach if you still face the issue, then i would suggest you check with code and packages, as the above process works.

    Hope this helps.

    If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click Comment.


  2. Venkat Ambati 5 Reputation points
    2025-03-12T22:05:40.46+00:00

    Thank you so much for your reply with this approach.

    Will give a try on this , Currently I have to deal with GitHub org permissions, which stopping me from triggering this from a function app. Our org has most restrictive permissions in GitHub, and not able to set the deployment from Azure.

    0 comments No comments

  3. Paul from DentroAI 0 Reputation points
    2025-04-01T14:58:27.3266667+00:00

    I have the same problem: when I deploy my function via VSCode it gets deployed successfully.

    When deployed via the pre-built github action, the deployment succeeds on the github side, but it doesn't show in the Azure portal.

    I'm using python instead of .NET

    Thank you for the steps and screenshots @RithwikBojja .

    The one thing you did differently than me before, is that you enabled basic authentication in the deployment step.

    Right now I created a new Function App, and connected again the github repo also enabling basic authentication. However, I still experience the same behavior: the deployment works fine with the github action, but the function doesn't show.

    I also don't have the "Logs" Tab shown in the "Deployment Center" as I can see you have it in your screenshot.

    I can only see "Settings". This suggests that no deployment ever got started right?

    I'm rather new to Azure, please talk to me like I'm 5 when using Azure specific terms 🙏🏻

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.