Skip to content

bcgov/zeva

Repository files navigation

How to build a pull request and deploy on Openshift Dev environment

Register the redirect url on SSO Console

Notes: the change may take about 20 minutes to be promoted to Zeva development environment on Openshift

Add the build-on-dev to the end of pull request's title

The "Build PR on Dev" pipeline will be triggered when it identified pull request's title ends with "build-on-dev"

Production release

Pre-production release

  • Update the description of the tracking pull request
  • Verify the changes made during the previous post production release

Production release

  • Manually trigger the pipeline release-build.yaml (Release Build 1.49.0)

Post production release

Merge the tracking pull request and create the new release branch

  • Squash merge the tracking pull request to master
  • Create the release on GitHub from master branch
  • Create the new release branch from master branch (this is done automatically by pipeline create-release.yaml)
  • Change the new release branch as the default branch in the repo and update the branch protection rules https://github.com/bcgov/zeva/settings/branches

Updates for the new release branch

  • dev-build.yaml
    • on -> push -> branches
    • env -> PR_NUMBER
    • env -> VERSION
    • jobs -> call-unit-test -> with -> pr-number
  • Update frontend/package.json version and create the new tracking pull request
  • Update release-build.yaml
    • name
    • env -> PR_NUMBER
    • env -> VERSION
    • jobs -> call-unit-test -> with -> pr-numb
  • Create the trackings pull request to merge the new release branch to master. Update the abour PR_NUMBER after the trackings pull request is created.

Pipelines

Primary Pipelines

  • build-on-dev.yaml (Build PR on Dev): Build pull request if the string build-on-dev is appended at the end of pull request title
  • dev-build.yaml (Dev Build 1.49.0): Every commit on the current release branch is automatically released to Dev.
  • release-build.yaml (Release Build 1.49.0): This is a manually managed pipeline. It needs to be triggered manually to build the current release branch and deploy on Test and further on Prod.
  • create-release.yaml (Create Release after merging to master): Automatically tag and create the release after merging release branch to master. The description of the tracking pull request becomes release notes.

Other Pipelines

  • cleanup-cron-workflow-runs.yaml (Scheduled cleanup old workflow runs): a cron job running periodically to cleanup old workflow runs
  • cleanup-workflow-runs.yaml (Cleanup old workflow runs): manually cleanup the workflow runs
  • emergency-release-build.yaml (Emergency Release Build 1.47.1): the pipeline built for emergency release 1.47.1
  • pr-build-template.yaml (PR Build Template): a pipeline template for pull request build
  • pr-lable.yaml (Label PR): ignore this one for now, it is automatically triggered after the pull request is merged or closed
  • pr-teardown.yaml (Teardown PR on Dev): remove the deployed pull request on Dev
  • release-build.yaml (Release Build 1.49.0): a pipeline to build release branch
  • unit-test-template.yaml (Unit Test Template): a pipeline template for unit test