Merge pull request #1920 from bcgov/frontend-readme #605
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: DPIA Frontend - Deploy DEV | |
on: | |
push: | |
branches: [main] | |
paths: | |
- "src/frontend/**" | |
workflow_dispatch: | |
jobs: | |
DPIA-App-Build-Tag-Push: | |
runs-on: ubuntu-latest | |
environment: APP-Dev | |
steps: | |
# Checkout CIRMO-DPIA Github Repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Login to Openshift Silver Cluster | |
uses: redhat-actions/oc-login@v1 | |
env: | |
OPENSHIFT_USER: github-actions | |
OPENSHIFT_NAMESPACE: b996e6-tools | |
with: | |
openshift_server_url: ${{ secrets.OPENSHIFT4_SERVER_URL }} | |
openshift_token: ${{ secrets.OPENSHIFT4_TOOLS_SA_PASSWORD }} | |
namespace: b996e6-tools | |
# Login to BC Gov Docker Image Repository | |
- name: Login to Openshift Docker | |
run: | | |
docker login ${{ secrets.OPENSHIFT4_PUBLIC_IMAGE_REPOSITORY_BASE_URL }} -u ${{ secrets.OPENSHIFT4_TOOLS_SA_USERNAME }} -p ${{ secrets.OPENSHIFT4_TOOLS_SA_PASSWORD }} | |
# Build the DPIA Frontend Application Image via docker-compose | |
- name: Build the Docker image | |
run: | | |
sudo docker-compose build dpia-webapp | |
# TROUBLESHOOTING - view images present in github action run | |
- name: Docker List Images | |
run: | | |
docker image ls | |
# Tag Docker Image built with latest commit hash (ex// $HASH-dev) | |
- name: Docker Tag Version | |
run: | | |
docker tag cirmo-dpia_dpia-webapp image-registry.apps.silver.devops.gov.bc.ca/b996e6-tools/app-dev:latest | |
# TROUBLESHOOTING - view images present in github action run | |
- name: Docker List Images | |
run: | | |
docker image ls | |
# Push docker image to BC Gov Repository | |
- name: Docker Push Version | |
run: | | |
docker push image-registry.apps.silver.devops.gov.bc.ca/b996e6-tools/app-dev:latest | |
DEV-deploy: | |
runs-on: ubuntu-latest | |
environment: APP-Dev | |
needs: [DPIA-App-Build-Tag-Push] | |
steps: | |
# Checkout Repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Login to Openshift Silver Cluster | |
uses: redhat-actions/oc-login@v1 | |
env: | |
OPENSHIFT_USER: github-actions | |
OPENSHIFT_NAMESPACE: b996e6-dev | |
with: | |
openshift_server_url: ${{ secrets.OPENSHIFT4_SERVER_URL }} | |
openshift_token: ${{ secrets.OPENSHIFT4_DEV_SA_PASSWORD }} | |
namespace: b996e6-dev | |
# Use deploy helper script to process and apply DPIA Frontend Application template into DEV namespace | |
- name: Process and Apply APP DeploymentConfig, Service, Route templates | |
env: | |
NAMESPACE: "${{ secrets.OPENSHIFT_DEV_NAMESPACE }}" | |
APPLICATION_NAME: "${{ secrets.APPLICATION_NAME }}-v2" | |
LICENSE_PLATE: "${{ secrets.LICENSE_PLATE }}" | |
ENVIRONMENT: "${{ secrets.ENVIRONMENT }}" | |
DC_TEMPLATE: "app-dc-template.yaml" | |
SERVICE_TEMPLATE: "app-service-template.yaml" | |
ROUTE_TEMPLATE: "app-route-template.yaml" | |
DIR: "app/silver" | |
IMAGESTREAM: "app-dev" | |
run: | | |
./.github/helpers/deploy.sh | |
DEV-health-check: | |
runs-on: ubuntu-latest | |
environment: | |
name: APP-Dev | |
url: https://dev.pia.gov.bc.ca | |
needs: [DEV-deploy] | |
steps: | |
# Checkout Repository | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Login to Openshift Silver Cluster | |
uses: redhat-actions/oc-login@v1 | |
env: | |
OPENSHIFT_USER: github-actions | |
OPENSHIFT_NAMESPACE: b996e6-dev | |
with: | |
openshift_server_url: ${{ secrets.OPENSHIFT4_SERVER_URL }} | |
openshift_token: ${{ secrets.OPENSHIFT4_DEV_SA_PASSWORD }} | |
namespace: b996e6-dev | |
# Use application health helper script to monitor readiness/liveness probe response post deployment | |
- name: Health Check DEV deployment | |
env: | |
NAMESPACE: "${{ secrets.OPENSHIFT_DEV_NAMESPACE }}" | |
APPLICATION_NAME: "${{ secrets.APPLICATION_NAME }}-v2" | |
run: | | |
./.github/helpers/application-health.sh | |
DEV-cleanup: | |
runs-on: ubuntu-latest | |
environment: "APP-Dev" | |
needs: [DEV-health-check] | |
steps: | |
# Checkout Repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Login to Openshift Silver Cluster | |
uses: redhat-actions/oc-login@v1 | |
env: | |
OPENSHIFT_USER: github-actions | |
OPENSHIFT_NAMESPACE: b996e6-dev | |
with: | |
openshift_server_url: ${{ secrets.OPENSHIFT4_SERVER_URL }} | |
openshift_token: ${{ secrets.OPENSHIFT4_DEV_SA_PASSWORD }} | |
namespace: b996e6-dev | |
# Use cleanup helper script to remove any leftover deployment pod objects from previous deployment | |
- name: Cleanup previous deployment pod objects | |
env: | |
NAMESPACE: "${{ secrets.OPENSHIFT_DEV_NAMESPACE }}" | |
run: | | |
./.github/helpers/cleanup-pods.sh | |
# Use cleanup helper script to remove any leftover deployment pod objects from previous deployment | |
- name: Cleanup previous replication controller objects | |
env: | |
NAMESPACE: "${{ secrets.OPENSHIFT_DEV_NAMESPACE }}" | |
run: | | |
./.github/helpers/cleanup-rc.sh | |
DEV-e2e: | |
needs: [DEV-cleanup] | |
uses: ./.github/workflows/e2e-test.yaml | |
with: | |
environment: "APP-Dev" | |
secrets: | |
DRAFT_IDIR_PASSWORD: ${{ secrets.DRAFT_IDIR_PASSWORD }} | |
MPO_IDIR_PASSWORD: ${{ secrets.MPO_IDIR_PASSWORD }} | |
CPO_IDIR_PASSWORD: ${{ secrets.CPO_IDIR_PASSWORD }} | |
DEV-Success-Notify: | |
runs-on: ubuntu-latest | |
environment: APP-Dev | |
needs: [DEV-e2e] | |
steps: | |
- name: Message Teams Channel on Success | |
run: | | |
curl --location --request POST ${{ secrets.TEAMS_SUCCESS_URL }} \ | |
--header 'Content-Type: text/plain' \ | |
--data-raw '{ | |
"@context": "https://schema.org/extensions", | |
"@type": "MessageCard", | |
"themeColor": "0072C6", | |
"title": "SUCCESS! WebApp Deployment to PIA ${{ secrets.ENVIRONMENT }} Environment has finished!.", | |
"text": "The PIA WebApp has been built and deployed to the ${{ secrets.ENVIRONMENT }} environment. \n\n End-to-end test suite has passed \n\n The logs for the successful deployment can be found [here](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})\n\n The changes for commit ${{ github.sha }} can be found [here](https://dev.pia.gov.bc.ca).", | |
}' | |
DEV-Failure-Notify: | |
runs-on: ubuntu-latest | |
environment: APP-Dev | |
if: failure() | |
steps: | |
- name: Message Teams Channel on Failure | |
run: | | |
curl --location --request POST ${{ secrets.TEAMS_FAILURE_URL }} \ | |
--header 'Content-Type: text/plain' \ | |
--data-raw '{ | |
"@context": "https://schema.org/extensions", | |
"@type": "MessageCard", | |
"themeColor": "0072C6", | |
"title": "FAILURE! WebApp Deployment to the PIA ${{ secrets.ENVIRONMENT }} Environment has failed.", | |
"text": "The PIA WebApp has NOT been built and deployed to the ${{ secrets.LICENSE_PLATE }} ${{ secrets.ENVIRONMENT }} environment.\n\n Please review the Github Action for this deployment (here)[${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}].", | |
}' |