Skip to content

Pipeline

Barrett Falk edited this page Sep 25, 2024 · 5 revisions

Introduction

There are two methods of deploying to test and production: releases and hotfixes. A release is a planned update containing multiple features and fixes in a sprint. A hotfix is employed to fix a bug in production without affecting an ongoing release that may be in test. Both approaches create a new test instance, allowing users to test the hotfix independently of any release in test.

Hotfix

To create a hotfix, start by branching off the hotfix branch. For example, if there is a Jira issue named CE-999 that requires a hotfix, create the branch hotfix/ce-999 in GitHub.

Creating a pull request (PR) for this into the main branch will deploy an instance of the hotfix in the DEV Namespace in OpenShift. Once ready, you can promote it to test through an approval step in GitHub actions.

Merging the hotfix branch into main triggers the request to promote the hotfix to production. This requires an approval step by Alec, Scarlett, or Barrett via GitHub actions (see deployment section below).

Releases

A release is the standard process for promoting features from dev to test, and then to production. To create a release, start by creating a branch (off of main) named /release/{release_name} (e.g., /release/orca, following the animal naming convention).

All feature branches for the release should be branched off of the release branch, such as /release/orca/ce-123.

Creating a PR of your feature branch into the release branch will automatically deploy to the DEV environment in OpenShift. Once the PR is approved and merged, it triggers a deployment to the TEST environment, requiring approval by Alec, Scarlett, or Barrett (see deployment section below).

After the promotion to test, a release candidate is queued up for production. Migrating to production requires an authorized person to approve the promotion via GitHub actions.

Deployments

To deploy to test (or prod) you'll want to find the latest "merge to main" action in github. It will have a clock icon next to it (see screenshot below).

image

Click that action and you'll see a screen that will allow you to review deployments.

Referring to the screenshot below, you'll want to:

  1. Click the "review deployments" button
  2. Check the "test" checkbox (prod is displayed in the screenshot, but you'll only see test)
  3. Click the "Approve and deploy" button.
  4. Then watch it migrate to test! (edited)

image

Schemaspy

There's a cronjob that will generate a physical database model via Schemaspy. This is a nightly job that runs in the test environment. Here's a link to the generated diagram:

https://bcgov.github.io/nr-compliance-enforcement/schemaspy/public/index.html

Pipeline Visualized

To be updated to reflect release and hotfix actions

C E Pipeline_2024-01-19_19-36-56