Skip to content

Release Build 1.63.0 #120

Release Build 1.63.0

Release Build 1.63.0 #120

## For each release, please update the value of workflow name, branches and PR_NUMBER
## Also update frontend/package.json version
name: Release Build 1.62.0
on:
workflow_dispatch:
workflow_call:
env:
## The pull request number of the Tracking pull request to merge the release branch to main
PR_NUMBER: 2283
VERSION: 1.62.0
GIT_URL: https://github.com/bcgov/zeva.git
TOOLS_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-tools
DEV_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-dev
TEST_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-test
PROD_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-prod
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
call-unit-test:
uses: ./.github/workflows/unit-test-template.yaml
with:
pr-number: 2283
build:
name: Build ZEVA on Openshift
runs-on: ubuntu-latest
timeout-minutes: 60
needs: call-unit-test
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Log in to Openshift
uses: redhat-actions/[email protected]
with:
openshift_server_url: ${{ secrets.OPENSHIFT_SERVER }}
openshift_token: ${{ secrets.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.TOOLS_NAMESPACE }}
- name: Build ZEVA Backend
run: |
cd openshift/templates/backend
oc process -f ./backend-bc.yaml NAME=zeva SUFFIX=-build-${{ env.PR_NUMBER }} VERSION=build-${{ env.VERSION }}-${{ env.PR_NUMBER }} GIT_URL=${{ env.GIT_URL }} GIT_REF=refs/pull/${{ env.PR_NUMBER }}/head | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
oc start-build --wait=true zeva-backend-build-${{ env.PR_NUMBER }}
- name: Build ZEVA Frontend
run: |
cd openshift/templates/frontend
oc process -f ./frontend-bc-docker.yaml NAME=zeva SUFFIX=-build-${{ env.PR_NUMBER }} VERSION=build-${{ env.VERSION }}-${{ env.PR_NUMBER }} GIT_URL=${{ env.GIT_URL }} GIT_REF=refs/pull/${{ env.PR_NUMBER }}/head | oc apply --wait=true -f - -n ${{ env.TOOLS_NAMESPACE }}
oc start-build --wait=true zeva-frontend-build-${{ env.PR_NUMBER }}
deploy-on-test:
name: Deploy ZEVA on Test
runs-on: ubuntu-latest
timeout-minutes: 60
needs: build
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Log in to Openshift
uses: redhat-actions/[email protected]
with:
openshift_server_url: ${{ secrets.OPENSHIFT_SERVER }}
openshift_token: ${{ secrets.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.TOOLS_NAMESPACE }}
- name: Ask for approval for ZEVA Test deployment
uses: trstringer/[email protected]
with:
secret: ${{ github.TOKEN }}
approvers: emi-hi,tim738745,kuanfandevops,JulianForeman
minimum-approvals: 1
issue-title: "ZEVA ${{ env.VERSION }} Test Deployment"
- name: Tag Frontend Image from tools to Test
run: |
oc tag ${{ env.TOOLS_NAMESPACE }}/zeva-frontend:build-${{ env.VERSION }}-${{ env.PR_NUMBER }} ${{ env.TEST_NAMESPACE }}/zeva-frontend:test-${{ env.VERSION }}
oc tag ${{ env.TOOLS_NAMESPACE }}/zeva-backend:build-${{ env.VERSION }}-${{ env.PR_NUMBER }} ${{ env.TEST_NAMESPACE }}/zeva-backend:test-${{ env.VERSION }}
# helm status will show an error if the helm release doesn't exist. The error will be ignored.
- name: Deply zeva-frontend on Test
shell: bash {0}
run: |
cd charts/zeva-apps/charts/zeva-frontend
helm status -n ${{ env.TEST_NAMESPACE }} zeva-frontend-test
if [ $? -eq 0 ]; then
echo "zeva-frontend-test release exists already"
helm upgrade --set frontendImageTagname=test-${{ env.VERSION }},openshiftLicensePlate=${{ secrets.OPENSHIFT_NAMESPACE_PLATE }} -n ${{ env.TEST_NAMESPACE }} -f ./values-test.yaml zeva-frontend-test .
else
echo "zeva-frontend-test release does not exist"
helm install --set frontendImageTagname=test-${{ env.VERSION }},openshiftLicensePlate=${{ secrets.OPENSHIFT_NAMESPACE_PLATE }} -n ${{ env.TEST_NAMESPACE }} -f ./values-test.yaml zeva-frontend-test .
fi
# helm status will show an error if the helm release doesn't exist. The error will be ignored.
- name: Deply zeva-backend on Test
shell: bash {0}
run: |
cd charts/zeva-apps/charts/zeva-backend
helm status -n ${{ env.TEST_NAMESPACE }} zeva-backend-test
if [ $? -eq 0 ]; then
echo "zeva-backend-test release exists already"
helm upgrade --set backendImageTagname=test-${{ env.VERSION }} -n ${{ env.TEST_NAMESPACE }} -f ./values-test.yaml zeva-backend-test .
else
echo "zeva-backend-test release does not exist"
helm install --set backendImageTagname=test-${{ env.VERSION }} -n ${{ env.TEST_NAMESPACE }} -f ./values-test.yaml zeva-backend-test .
fi
deploy-on-prod:
name: Deploy ZEVA on Prod
runs-on: ubuntu-latest
timeout-minutes: 60
needs: deploy-on-test
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Log in to Openshift
uses: redhat-actions/[email protected]
with:
openshift_server_url: ${{ secrets.OPENSHIFT_SERVER }}
openshift_token: ${{ secrets.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.TOOLS_NAMESPACE }}
- name: Ask for approval for ZEVA Prod deployment
uses: trstringer/[email protected]
with:
secret: ${{ github.TOKEN }}
approvers: kuanfandevops,tim738745,emi-hi,JulianForeman
minimum-approvals: 2
issue-title: "ZEVA ${{ env.VERSION }} Prod Deployment"
- name: Tag Frontend Image from tools to Prod
run: |
oc tag ${{ env.TOOLS_NAMESPACE }}/zeva-frontend:build-${{ env.VERSION }}-${{ env.PR_NUMBER }} ${{ env.PROD_NAMESPACE }}/zeva-frontend:prod-${{ env.VERSION }}
oc tag ${{ env.TOOLS_NAMESPACE }}/zeva-backend:build-${{ env.VERSION }}-${{ env.PR_NUMBER }} ${{ env.PROD_NAMESPACE }}/zeva-backend:prod-${{ env.VERSION }}
- name: Deply zeva-frontend on Prod
shell: bash {0}
run: |
cd charts/zeva-apps/charts/zeva-frontend
helm status -n ${{ env.PROD_NAMESPACE }} zeva-frontend-prod
if [ $? -eq 0 ]; then
echo "zeva-frontend-prod release exists already"
helm upgrade --set frontendImageTagname=prod-${{ env.VERSION }},openshiftLicensePlate=${{ secrets.OPENSHIFT_NAMESPACE_PLATE }} -n ${{ env.PROD_NAMESPACE }} -f ./values-prod.yaml zeva-frontend-prod .
else
echo "zeva-frontend-prod release does not exist"
helm install --set frontendImageTagname=prod-${{ env.VERSION }},openshiftLicensePlate=${{ secrets.OPENSHIFT_NAMESPACE_PLATE }} -n ${{ env.PROD_NAMESPACE }} -f ./values-prod.yaml zeva-frontend-prod .
fi
- name: Deply zeva-backend on Prod
shell: bash {0}
run: |
cd charts/zeva-apps/charts/zeva-backend
helm status -n ${{ env.PROD_NAMESPACE }} zeva-backend-prod
if [ $? -eq 0 ]; then
echo "zeva-backend-prod release exists already"
helm upgrade --set backendImageTagname=prod-${{ env.VERSION }} -n ${{ env.PROD_NAMESPACE }} -f ./values-prod.yaml zeva-backend-prod .
else
echo "zeva-backend-prod release does not exist"
helm install --set backendImageTagname=prod-${{ env.VERSION }} -n ${{ env.PROD_NAMESPACE }} -f ./values-prod.yaml zeva-backend-prod .
fi