From 3824920c53973270490eb23a2bb753b247e96036 Mon Sep 17 00:00:00 2001 From: smabuk <2011834+smabuk@users.noreply.github.com> Date: Mon, 23 Oct 2023 17:51:52 +0100 Subject: [PATCH] Action update --- .github/workflows/smabAdventOfCode.yml | 117 ++++++++++++++++++------- 1 file changed, 83 insertions(+), 34 deletions(-) diff --git a/.github/workflows/smabAdventOfCode.yml b/.github/workflows/smabAdventOfCode.yml index 5d8bcaf..98a8355 100644 --- a/.github/workflows/smabAdventOfCode.yml +++ b/.github/workflows/smabAdventOfCode.yml @@ -1,40 +1,89 @@ -name: Deploy ASP.NET Core Web Application to smabAdventOfCode -on: - push: - branches: - - main +# This workflow will build and push a .NET Core app to an Azure Web App when a commit is pushed to your default branch. +# +# This workflow assumes you have already created the target Azure App Service web app. +# For instructions see https://docs.microsoft.com/en-us/azure/app-service/quickstart-dotnetcore?tabs=net60&pivots=development-environment-vscode +# +# To configure this workflow: +# +# 1. Download the Publish Profile for your Azure Web App. You can download this file from the Overview page of your Web App in the Azure Portal. +# For more information: https://docs.microsoft.com/en-us/azure/app-service/deploy-github-actions?tabs=applevel#generate-deployment-credentials +# +# 2. Create a secret in your repository named AZURE_WEBAPP_PUBLISH_PROFILE, paste the publish profile contents as the value of the secret. +# For instructions on obtaining the publish profile see: https://docs.microsoft.com/azure/app-service/deploy-github-actions#configure-the-github-secret +# +# 3. Change the value for the AZURE_WEBAPP_NAME. Optionally, change the AZURE_WEBAPP_PACKAGE_PATH and DOTNET_VERSION environment variables below. +# +# For more information on GitHub Actions for Azure: https://github.com/Azure/Actions +# For more information on the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy +# For more samples to get started with GitHub Action workflows to deploy to Azure: https://github.com/Azure/actions-workflow-samples + +name: Build and deploy ASP.Net Core app to an Azure Web App + env: - AZURE_WEBAPP_NAME: smabAdventOfCode - AZURE_WEBAPP_PACKAGE_PATH: ./published - AZURE_WEBAPP_PUBLISH_PROFILE: ${{ secrets.SMABADVENTOFCODE_PUBLISH_PROFILE }} - CONFIGURATION: Release - DOTNET_CORE_VERSION: 7.0.x + AZURE_WEBAPP_NAME: smabAdventOfCode # set this to the name of your Azure Web App + AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root + DOTNET_VERSION: '8.0.100-rc.2.23502.2' # set this to the .NET Core version to use PROJECT_PATH: Web + +on: + push: + branches: [ "main" ] + workflow_dispatch: + +permissions: + contents: read + jobs: build: runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up .NET Core + uses: actions/setup-dotnet@v2 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Set up dependency caching for faster builds + uses: actions/cache@v3 + with: + path: ~/.nuget/packages + key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} + restore-keys: | + ${{ runner.os }}-nuget- + + - name: Build with dotnet + run: dotnet build "${{ env.PROJECT_PATH }}" --configuration Release + + - name: dotnet publish + run: dotnet publish "${{ env.PROJECT_PATH }}" -c Release -o ${{env.DOTNET_ROOT}}/myapp + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v3 + with: + name: .net-app + path: ${{env.DOTNET_ROOT}}/myapp + + deploy: + permissions: + contents: none + runs-on: ubuntu-latest + needs: build + environment: + name: 'Development' + url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} + steps: - - uses: actions/checkout@v2 - - name: Setup .NET Core SDK ${{ env.DOTNET_CORE_VERSION }} - uses: actions/setup-dotnet@v1 - with: - dotnet-version: ${{ env.DOTNET_CORE_VERSION }} - - name: Restore packages - run: dotnet restore "${{ env.PROJECT_PATH }}" - - name: Build app - run: dotnet build "${{ env.PROJECT_PATH }}" --configuration ${{ env.CONFIGURATION }} --no-restore - - name: Test app - run: dotnet test "${{ env.PROJECT_PATH }}" --no-build - - name: Publish app for deploy - run: dotnet publish "${{ env.PROJECT_PATH }}" --configuration ${{ env.CONFIGURATION }} --no-build --output "${{ env.AZURE_WEBAPP_PACKAGE_PATH }}" - - name: Deploy to Azure WebApp - uses: azure/webapps-deploy@v2 - with: - app-name: ${{ env.AZURE_WEBAPP_NAME }} - publish-profile: ${{ env.AZURE_WEBAPP_PUBLISH_PROFILE }} - package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - - name: Publish Artifacts - uses: actions/upload-artifact@v1.0.0 - with: - name: webapp - path: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: .net-app + + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@v2 + with: + app-name: ${{ env.AZURE_WEBAPP_NAME }} + publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} + package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}