Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy to web app does not working for .NET 8 and Linux based deployment - azure/webapps-deploy@v3 #396

Open
nikunjbanker opened this issue Feb 3, 2024 · 4 comments

Comments

@nikunjbanker
Copy link

We are using GitHub Action for deploying to Azure Web App verison 3 - azure/webapps-deploy@v3. Detail about our WebApp:

Dotnet SDK version: .NET 8 - dotnet-version: 8.x
Platform: Linux

Below steps in our workflow not working:

- uses: azure/webapps-deploy@v3
      id: deploy-to-webapp
      with:
        app-name: ${{ vars.PP_NAME }}
        package: ${{ steps.download-artifact.outputs.download-path }}
        clean: false
        restart: false

Using azure/webapps-deploy@v3 - Github action getting below error:

##[debug]Initiated deployment via kudu service for webapp package : /home/runner/work/_temp/temp_web_package_7365615165970218.zip
Package deployment using OneDeploy initiated.
##[debug]setting affinity cookie ["ARRAffinity=*******;Path=/;HttpOnly;Secure;Domain=******.scm.azurewebsites.net","ARRAffinitySameSite=*****;Path=/;HttpOnly;SameSite=None;Secure;Domain=******.scm.azurewebsites.net"]
##[debug][POST] https://*******.scm.azurewebsites.net/api/publish?async=true&deployer=GITHUB_ONE_DEPLOY&type=zip&clean=false&restart=false&message=_______slotName%22%3A%22production%22%2C%22commitMessage_____
##[debug]encountered request timedout issue in Kudu. Retrying again
******
Error: Failed to deploy web package to App Service.
Error: Deployment Failed, Error: Failed to deploy web package using OneDeploy to App Service.
Conflict (CODE: 409)

As a workaround, we have tried by directly executing PowerShell command, but its also not working - by creating zip and provided zip file to deploy using Publish-AzWebApp PS command:

   - name: Create Zip
      shell: pwsh
      run: Compress-Archive -Path ${{ steps.download-artifact.outputs.download-path }} -Destinationpath ./myWebApp.zip

    - name: Run Azure PowerShell inline script
      uses: azure/powershell@v1
      with:
        inlineScript: |
          Publish-AzWebApp -ResourceGroupName ${{ vars.RG_NAME }} -Name ${{ vars.WEBAPP_NAME }} -ArchivePath ./myWebApp.zip -Timeout 1000000 -Confirm:$false -Force
        azPSVersion: "latest"

Using PowerShell command, its giving below error:

/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command $env:PSModulePath
/usr/share:/home/runner/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules
Initializing Az Module Complete
Running Az PowerShell Script
/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command /home/runner/work/_temp/*****.ps1
Publish-AzWebApp: /home/runner/work/_temp/*****.ps1:2
Line |
   2 |  Publish-AzWebApp -ResourceGroupName rg-test -Name a …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Deployment failed with status code GatewayTimeout
Error: Error: The process '/usr/bin/pwsh' failed with exit code 1

It seems, there is an issue while deploying .NET 8 - ASP.NET Core Web application to Linux based App Service. Any workaround or solution will be helpful.

Checked /wwwroot directory using bash shell as well but it also empty.

@wc-whiteheadd
Copy link

We are having the same issue since upgrading to NET 8 for our function apps. After deploying via the CICD it simply wipes the app plan for some reason.

@wc-whiteheadd
Copy link

Just to come back to this as i now know why its broken and how to fix it.

Since the latest .net 8 functions, they have changed how the compiled output works and they now create an ".azurefunctions" folder which holds the functions and references inside it. Whats really important about this is by default most compression libraries out there actually don't defaulty include folders that start with a "." in their name as in normal context, these folders are reserved for hidden directories. This means if most peoples CICD are ziping the release build up and then deploying it using webbapps, unless you override the default zipping logic, the ".azurefunctions" folder will not be zipped up along with your build and it will suddenly wipe all your azure functions upon a deployment as its missing the files required.

To fix this, when the zipping process occurs you will need to specifically specify to include the ".azurefunctions" directory, this will force the compression library to include it regardless of the fact that it starts with a "." in its name and it will solve the problem.

Hope this helps someone who comes across this.

@alborzmgm
Copy link

alborzmgm commented Jun 25, 2024

Is there any fix for this issue? I use az webapp deployment command and see the same problem.

@davidenrescobedo86
Copy link

Downgrade to 7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants