diff --git a/.github/CHANGETHIS/deploy-prod.yml b/.github/CHANGETHIS/deploy-prod.yml new file mode 100644 index 0000000..f9d1e86 --- /dev/null +++ b/.github/CHANGETHIS/deploy-prod.yml @@ -0,0 +1,82 @@ +name: Production deployment + +on: + push: + branches: + - master + +env: + PACKAGES_TOKEN: ${{secrets.PACKAGES_TOKEN}} + AZURE_RESOURCE_GROUP: cd-with-actions + AZURE_APP_PLAN: actions-ttt-deployment + AZURE_LOCATION: '"Central US"' + ################################################# + ### USER PROVIDED VALUES ARE REQUIRED BELOW ### + ################################################# + ################################################# + ### REPLACE USERNAME WITH GH USERNAME ### + AZURE_WEBAPP_NAME: gitstua-ttt-app + ################################################# + +jobs: + build: + if: contains(github.event.pull_request.labels.*.name, 'stage') + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: npm install and build webpack + run: | + npm install + npm run build + - uses: actions/upload-artifact@master + with: + name: webpack artifacts + path: public/ + + Build-Docker-Image: + runs-on: ubuntu-latest + needs: build + name: Build image and store in GitHub Packages + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Download built artifact + uses: actions/download-artifact@master + with: + name: webpack artifacts + path: public + + - name: create image and store in Packages + uses: mattdavis0351/actions/docker-gpr@1.3.0 + with: + repo-token: ${{secrets.GITHUB_TOKEN}} + image-name: ${{env.DOCKER_IMAGE_NAME}} + + Deploy-to-Azure: + runs-on: ubuntu-latest + needs: Build-Docker-Image + name: Deploy app container to Azure + steps: + - name: "Login via Azure CLI" + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + + - uses: azure/docker-login@v1 + with: + login-server: ${{env.IMAGE_REGISTRY_URL}} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Deploy web app container + uses: azure/webapps-container-deploy@v1 + with: + app-name: ${{env.AZURE_WEBAPP_NAME}} + images: ${{env.IMAGE_REGISTRY_URL}}/${{ github.repository }}/${{env.DOCKER_IMAGE_NAME}}:${{ github.sha }} + + - name: Azure logout + run: | + az logout