mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-10 15:17:41 +00:00
Update GitHub Actions workflow for Node.js app deployment to Azure
This commit is contained in:
64
.github/workflows/main_syncrow(stg).yml
vendored
64
.github/workflows/main_syncrow(stg).yml
vendored
@ -1,7 +1,7 @@
|
|||||||
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
|
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
|
||||||
# More GitHub Actions for Azure: https://github.com/Azure/actions
|
# More GitHub Actions for Azure: https://github.com/Azure/actions
|
||||||
|
|
||||||
name: Build and deploy container app to Azure Web App - syncrow(stg)
|
name: Build and deploy Node.js app to Azure Web App - syncrow
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@ -11,41 +11,63 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: 'ubuntu-latest'
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read #This is required for actions/checkout
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Node.js version
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: actions/setup-node@v3
|
||||||
|
|
||||||
- name: Log in to registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
with:
|
||||||
registry: https://syncrow.azurecr.io/
|
node-version: '20.x'
|
||||||
username: ${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }}
|
|
||||||
password: ${{ secrets.AzureAppService_ContainerPassword_3cfcef3755ed46eda766dfc7059dcf5e }}
|
|
||||||
|
|
||||||
- name: Build and push container image to registry
|
- name: npm install, build, and test
|
||||||
uses: docker/build-push-action@v3
|
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:
|
with:
|
||||||
push: true
|
name: node-app
|
||||||
tags: syncrow.azurecr.io/${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }}/backend:${{ github.sha }}
|
path: release.zip
|
||||||
file: ./Dockerfile
|
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build
|
needs: build
|
||||||
environment:
|
environment:
|
||||||
name: 'test'
|
name: 'stg'
|
||||||
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
|
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
|
||||||
|
permissions:
|
||||||
|
id-token: write #This is required for requesting the JWT
|
||||||
|
contents: read #This is required for actions/checkout
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Deploy to Azure Web App
|
- 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:
|
||||||
|
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_515C8E782CFF431AB20448C85CA0FE58 }}
|
||||||
|
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_2AEFE5534424490387C08FAE41573CC2 }}
|
||||||
|
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_00623C33023749FEA5F6BC36884F9C8A }}
|
||||||
|
|
||||||
|
- name: 'Deploy to Azure Web App'
|
||||||
id: deploy-to-webapp
|
id: deploy-to-webapp
|
||||||
uses: azure/webapps-deploy@v2
|
uses: azure/webapps-deploy@v3
|
||||||
with:
|
with:
|
||||||
app-name: 'syncrow'
|
app-name: 'syncrow'
|
||||||
slot-name: 'stg'
|
slot-name: 'stg'
|
||||||
publish-profile: ${{ secrets.AzureAppService_PublishProfile_cfa029d9d3a84172a06cfe47c05c18ca }}
|
package: .
|
||||||
images: 'syncrow.azurecr.io/${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }}/backend:${{ github.sha }}'
|
|
||||||
|
Reference in New Issue
Block a user