diff --git a/.github/workflows/dev_syncrow(dev).yml b/.github/workflows/dev_syncrow(dev).yml index 98f5c7b..8373a4f 100644 --- a/.github/workflows/dev_syncrow(dev).yml +++ b/.github/workflows/dev_syncrow(dev).yml @@ -1,7 +1,4 @@ -# 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 - syncrow +name: Auth and Backend using Docker to Azure App Service on: push: @@ -9,63 +6,53 @@ on: - dev workflow_dispatch: +env: + AZURE_WEB_APP_NAME: 'syncrow' + AZURE_WEB_APP_SLOT_NAME: 'dev' + ACR_REGISTRY: 'syncrow.azurecr.io' + IMAGE_NAME: 'backend' + IMAGE_TAG: 'latest' + jobs: - build: + build_and_deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up Node.js version + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: '20.x' + node-version: '20' - - name: npm install, build, and test + - name: Install dependencies and build project run: | npm install - npm run build --if-present - npm run test --if-present + npm run build - - name: Zip artifact for deployment - run: zip release.zip ./* -r + - name: List build output + run: ls -R dist/apps/ - - name: Upload artifact for deployment job - uses: actions/upload-artifact@v3 + - name: Log in to Azure + uses: azure/login@v1 with: - name: node-app - path: release.zip + creds: ${{ secrets.AZURE_CREDENTIALS }} - deploy: - runs-on: ubuntu-latest - needs: build - environment: - name: 'dev' - url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} - permissions: - id-token: write #This is required for requesting the JWT + - name: Log in to Azure Container Registry + run: az acr login --name ${{ env.ACR_REGISTRY }} - steps: - - name: Download artifact from build job - uses: actions/download-artifact@v3 - with: - name: node-app + - name: List build output + run: ls -R dist/apps/ - - name: Unzip artifact for deployment - run: unzip release.zip - - - name: Login to Azure - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_BC1CF8CCEBC14B44B009FB9557BAD1A8 }} - tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_7A710FEDFC48473BA2E60430D22C994D }} - subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_C599EA05F8D4418FB72503DC7D7F88A2 }} + - name: Build and push Docker image + run: | + docker build . -t ${{ env.ACR_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} + docker push ${{ env.ACR_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} - - name: 'Deploy to Azure Web App' - id: deploy-to-webapp - uses: azure/webapps-deploy@v2 - with: - app-name: 'syncrow' - slot-name: 'dev' - package: . - \ No newline at end of file + - name: Set Web App with Docker container + run: | + az webapp config container set \ + --name ${{ env.AZURE_WEB_APP_NAME }} \ + --resource-group backend \ + --docker-custom-image-name ${{ env.ACR_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} \ + --docker-registry-server-url https://${{ env.ACR_REGISTRY }} diff --git a/package.json b/package.json index d331e9a..b88e486 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": true, "license": "UNLICENSED", "scripts": { - "build": "nest build", + "build": "npx nest build", "format": "prettier --write \"apps/**/*.ts\" \"libs/**/*.ts\"", "start": "npx nest start", "start:dev": "npx nest start --watch",