diff --git a/.github/workflows/main_syncrow(staging).yml b/.github/workflows/main_syncrow(staging).yml index 952632a..c926795 100644 --- a/.github/workflows/main_syncrow(staging).yml +++ b/.github/workflows/main_syncrow(staging).yml @@ -1,4 +1,7 @@ -name: Backend deployment to Azure App Service +# 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 container app to Azure Web App - syncrow(test) on: push: @@ -6,50 +9,43 @@ on: - main workflow_dispatch: -env: - AZURE_WEB_APP_NAME: 'syncrow' - AZURE_WEB_APP_SLOT_NAME: 'staging' - ACR_REGISTRY: 'syncrow.azurecr.io' - IMAGE_NAME: 'backend' - IMAGE_TAG: 'latest' - jobs: - build_and_deploy: - runs-on: ubuntu-latest + build: + runs-on: 'ubuntu-latest' steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v2 - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '20' + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - - name: Install dependencies and build project - run: | - npm install - npm run build + - name: Log in to registry + uses: docker/login-action@v2 + with: + registry: https://syncrow.azurecr.io/ + username: ${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }} + password: ${{ secrets.AzureAppService_ContainerPassword_3cfcef3755ed46eda766dfc7059dcf5e }} - - name: Log in to Azure - uses: azure/login@v1 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Build and push container image to registry + uses: docker/build-push-action@v3 + with: + push: true + tags: syncrow.azurecr.io/${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }}/backend:${{ github.sha }} + file: ./Dockerfile - - name: Log in to Azure Container Registry - run: az acr login --name ${{ env.ACR_REGISTRY }} + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'test' + url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} - - name: List build output - run: ls -R dist/ - - - 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: 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 }} + steps: + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@v2 + with: + app-name: 'syncrow' + slot-name: 'main' + publish-profile: ${{ secrets.AzureAppService_PublishProfile_cfa029d9d3a84172a06cfe47c05c18ca }} + images: 'syncrow.azurecr.io/${{ secrets.AzureAppService_ContainerUsername_e7578d2a094946609a4506f293c7c645 }}/backend:${{ github.sha }}' \ No newline at end of file