This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/.github/workflows/poi-deploy.yml
2022-11-03 16:41:13 -04:00

77 lines
2.3 KiB
YAML

name: 'POI API - Deployment'
# this is triggered when there is a pull request on the below path, where the PR type is opened or reopened
on:
push:
branches:
- main
paths:
- 'apis/poi/**'
workflow_dispatch:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#permissions:
# contents: read
defaults:
run:
shell: bash
working-directory: ./apis/poi/web
jobs:
Build:
name: 'Docker_Build_Deploy'
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: "Azure Login"
uses: Azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build Docker Image
run:
az acr build
--image devopsoh/api-poi:${{ github.run_id }}
--registry devopsoh41379cr
--build-arg build_version=${{ github.run_id }}
--file Dockerfile .
- name: Update_App_Service_Image_For_Staging_Slot
run:
az webapp config container set
--name devopsoh41379poi
--resource-group devopsoh41379rg
--slot staging
--docker-custom-image-name devopsoh41379cr.azurecr.io/devopsoh/api-poi:${{ github.run_id }}
--docker-registry-server-url https://devopsoh41379cr.azurecr.io
- name: Stage Health Check
uses: jtalk/url-health-check-action@v2
with:
# Check the following URLs one by one sequentially
url: https://devopsoh41379poi-staging.azurewebsites.net/api/version/poi
# Follow redirects, or just report success on 3xx status codes
follow-redirect: false # Optional, defaults to "false"
# Fail this action after this many failed attempts
max-attempts: 3 # Optional, defaults to 1
# Delay between retries
retry-delay: 5s # Optional, only applicable to max-attempts > 1
# Retry all errors, including 404. This option might trigger curl upgrade.
retry-all: false # Optional, defaults to "false"
- name: Swap into production
run:
az webapp deployment slot swap
--name devopsoh41379poi
--resource-group devopsoh41379rg
--action swap
--slot staging
--target-slot production