Skip to content

ITVR new-pipeline Test CI #7

ITVR new-pipeline Test CI

ITVR new-pipeline Test CI #7

Workflow file for this run

name: ITVR new-pipeline Test CI
on:
workflow_dispatch:
env:
GIT_URL: https://github.com/bcgov/itvr.git
DEV_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-dev
TEST_NAMESPACE: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-test
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
get-build-suffix:
name: Find Dev deployment build suffix
runs-on: ubuntu-latest
outputs:
BUILD_SUFFIX: ${{ steps.get-build-suffix.outputs.BUILD_SUFFIX }}
steps:
- 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.DEV_NAMESPACE }}
- id: get-build-suffix
run: |
build_suffix=$(oc -n ${{ env.DEV_NAMESPACE }} describe deployment/itvr-dev-frontend | grep Image | awk -F ':' '{print $NF}')
echo "Validating $build_suffix"
if [[ "$build_suffix" =~ ^[0-9]+\.[0-9]+\.[0-9]+-[0-9]{14}$ ]]; then
echo "Build suffix $build_suffix format is valid."
echo "BUILD_SUFFIX=$build_suffix" >> $GITHUB_OUTPUT
else
echo "Error: Build suffix $build_suffix format is invalid!"
exit 1
fi
approval-deploy-on-test:
name: Approval the deployment on Test
needs: get-build-suffix
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Ask for approval for ITVR Test deployment
uses: trstringer/[email protected]
with:
secret: ${{ github.TOKEN }}
approvers: emi-hi,tim738745,kuanfandevops,JulianForeman,rogerlcleung
minimum-approvals: 1
issue-title: "ITVR ${{ needs.get-build-suffix.outputs.BUILD_SUFFIX }} Test Deployment"
deploy:
name: Deploy ITVR on Test
runs-on: ubuntu-latest
timeout-minutes: 60
needs: [get-build-suffix, approval-deploy-on-test]
env:
BUILD_SUFFIX: ${{ needs.get-build-suffix.outputs.BUILD_SUFFIX }}
steps:
- name: Checkout Manifest repository
uses: actions/[email protected]
with:
repository: bcgov-c/tenant-gitops-ac294c
ref: main
ssh-key: ${{ secrets.MANIFEST_REPO_DEPLOY_KEY }}
- name: Update tags
uses: mikefarah/[email protected]
with:
cmd: |
yq -i '.frontend.image.tag = "${{ env.BUILD_SUFFIX }}"' itvr/values-test.yaml
yq -i '.backend.image.tag = "${{ env.BUILD_SUFFIX }}"' itvr/values-test.yaml
yq -i '.cra.image.tag = "${{ env.BUILD_SUFFIX }}"' itvr/values-test.yaml
yq -i '.task-queue.image.tag = "${{ env.BUILD_SUFFIX }}"' itvr/values-test.yaml
- name: GitHub Commit & Push
shell: bash {0}
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git add itvr/values-test.yaml
git commit -m "Update the image tag to ${{ env.BUILD_SUFFIX }} on Test"
git push
- 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.TEST_NAMESPACE }}
- name: Tag and deploy to Test
run: |
helm -n ${{ env.DEV_NAMESPACE }} list
oc tag ${{ env.DEV_NAMESPACE }}/itvr-backend:${{ env.BUILD_SUFFIX }} ${{ env.TEST_NAMESPACE }}/itvr-backend:${{ env.BUILD_SUFFIX }}
oc tag ${{ env.DEV_NAMESPACE }}/itvr-frontend:${{ env.BUILD_SUFFIX }} ${{ env.TEST_NAMESPACE }}/itvr-frontend:${{ env.BUILD_SUFFIX }}
oc tag ${{ env.DEV_NAMESPACE }}/itvr-cra:${{ env.BUILD_SUFFIX }} ${{ env.TEST_NAMESPACE }}/itvr-cra:${{ env.BUILD_SUFFIX }}
oc tag ${{ env.DEV_NAMESPACE }}/itvr-task-queue:${{ env.BUILD_SUFFIX }} ${{ env.TEST_NAMESPACE }}/itvr-task-queue:${{ env.BUILD_SUFFIX }}
- name: Helm Deployment
run: |
cd itvr
helm -n ${{ env.TEST_NAMESPACE }} -f ./values-test.yaml upgrade --install itvr-test . \
--set frontend.podAnnotations.rolloutTriggered="A$(date +%s)E" \
--set backend.podAnnotations.rolloutTriggered="A$(date +%s)E" \
--set cra.podAnnotations.rolloutTriggered="A$(date +%s)E" \
--set task-queue.podAnnotations.rolloutTriggered="A$(date +%s)E"