on: [push] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: 'Checkout Github Action' uses: actions/checkout@master - name: 'Login via Azure CLI' uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Create ACR id: create-acr run: | az acr create -n royvault -g roy_vault --location "West US 2" --sku Basic --admin-enabled echo "::set-output name=acr_username::`az acr credential show -n royvault --query username | xargs`" echo "::set-output name=acr_password::`az acr credential show -n royvault --query passwords[0].value | xargs`" echo "::add-mask::`az acr credential show -n royvault --query passwords[0].value | xargs`" - uses: azure/docker-login@v1 with: login-server: royvault.azurecr.io username: ${{ steps.create-acr.outputs.acr_username }} password: ${{ steps.create-acr.outputs.acr_password }} - name: Build and push image to ACR id: build-image run: | docker build "$GITHUB_WORKSPACE/" -f "Dockerfile" -t royvault.azurecr.io/royvault-img:${{ github.sha }} docker push royvault.azurecr.io/royvault-img:${{ github.sha }} - name: Set Web App ACR authentication uses: Azure/appservice-settings@v1 with: app-name: roy-vault app-settings-json: | [ { "name": "DOCKER_REGISTRY_SERVER_URL", "value": "royvault.azurecr.io", "slotSetting": false }, { "name": "DOCKER_REGISTRY_SERVER_USERNAME", "value": "${{ steps.create-acr.outputs.acr_username }}", "slotSetting": false }, { "name": "DOCKER_REGISTRY_SERVER_PASSWORD", "value": "${{ steps.create-acr.outputs.acr_password }}", "slotSetting": false } ] - uses: azure/webapps-deploy@v2 with: app-name: roy-vault images: royvault.azurecr.io/royvault-img:${{ github.sha }}