From 3fe7e6e42329fafaaa07393f69d7b23bcd84f835 Mon Sep 17 00:00:00 2001 From: Favour Markson <95889759+DevMarkson@users.noreply.github.com> Date: Sat, 14 Sep 2024 18:35:26 +0100 Subject: [PATCH] Add or update the Azure App Service build and deployment workflow config --- .github/workflows/frontend_jurissmartt.yml | 131 +++++++++++---------- 1 file changed, 70 insertions(+), 61 deletions(-) diff --git a/.github/workflows/frontend_jurissmartt.yml b/.github/workflows/frontend_jurissmartt.yml index 16c9051..461d74f 100644 --- a/.github/workflows/frontend_jurissmartt.yml +++ b/.github/workflows/frontend_jurissmartt.yml @@ -1,62 +1,71 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Node.js app to Azure Web App - JurisSmartt - -# Run the workflow whenever change is pushed into the main branch -on: - push: - branches: - - frontend - workflow_dispatch: - - -# There are two jobs in this workflow - build and deploy -jobs: - # Builds the application for production. - # You should configure this environment as close as possible to the production environment, e.g. using Ubuntu for Linux apps, using the same Node version - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set up Node.js version - uses: actions/setup-node@v3 +# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: Build and deploy Node.js app to Azure Web App - JurisSmartt + +on: + push: + branches: + - frontend + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js version + uses: actions/setup-node@v3 + with: + node-version: '18.x' + + - name: npm install, build, and test + run: | + npm install + npm run build --if-present + npm run test --if-present + + - name: Zip artifact for deployment + run: zip release.zip ./* -r + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v4 + with: + name: node-app + path: release.zip + + 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: node-app + + - name: Unzip artifact for deployment + run: unzip release.zip + + - name: Login to Azure + uses: azure/login@v2 with: - node-version: '18.x' - - - name: Install dependencies, build, and test - run: | - npm install - npm run build --if-present - npm run test --if-present - # Other scripts if configured should be added here, such as linting, formating - - - name: Upload artifact for deployment job - uses: actions/upload-artifact@v3 - with: - name: node-app - path: dist # This should be your distribution path, not the root path - - # Deploy the application to Azure - deploy: - runs-on: ubuntu-latest - needs: build - environment: - name: 'Production' - url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} - - steps: - - name: Download artifact from build job - uses: actions/download-artifact@v3 - with: - name: node-app - - - name: 'Deploy to Azure Web App' - id: deploy-to-webapp - uses: azure/webapps-deploy@v2 - with: - app-name: 'JurisSmartt' - slot-name: 'Production' - package: . + client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_39755D77F7DE419EB8F7E69FFAB5CA1C }} + tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_3E4107EFF40545649B13FB663D0643F3 }} + subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_FC3FA349F81B4B9DB0CCB48DDC8159F3 }} + + - name: 'Deploy to Azure Web App' + id: deploy-to-webapp + uses: azure/webapps-deploy@v3 + with: + app-name: 'JurisSmartt' + slot-name: 'Production' + package: . + \ No newline at end of file