From 3942fb0110157685c0203b9666e63c95850ee65e Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:25:45 -0500 Subject: [PATCH 1/7] chore(ci): tag successful test images --- .github/workflows/merge-main.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/merge-main.yml b/.github/workflows/merge-main.yml index 8cdcd0cf..83d159cb 100644 --- a/.github/workflows/merge-main.yml +++ b/.github/workflows/merge-main.yml @@ -28,3 +28,21 @@ jobs: logout_chain_url: https://logontest7.gov.bc.ca/clp-cgi/logoff.cgi?retnow=1&returl=https://test.loginproxy.gov.bc.ca/auth/realms/standard/protocol/openid-connect/logout?redirect_uri= target: test url: fom-test.nrs.gov.bc.ca + + images-backup: + name: Backup images (PROD) + continue-on-error: true # If no prod tags + needs: [deploy] + permissions: + packages: write + runs-on: ubuntu-24.04 + strategy: + matrix: + component: [api, admin, db, public] + steps: + - uses: shrink/actions-docker-registry-tag@v4 + with: + registry: ghcr.io + repository: ${{ github.repository }}/${{ matrix.component }} + target: ${{ needs.deploy.outputs.tag }} + tags: test From d025e94c9a67b3e62981517f5f8ecac9d101139b Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:26:57 -0500 Subject: [PATCH 2/7] Use test tag as default for prod workflow --- .github/workflows/release.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e51a87c6..2471e775 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,12 +6,9 @@ on: workflow_dispatch: inputs: tag: - description: Container tag; usually prod or PR number, can be omitted - type: string - workflow_call: - inputs: - tag: - description: Container tag; usually prod or PR number, can be omitted + description: Container tag; usually test, prod or PR number, can be omitted + default: test + required: true type: string concurrency: From f26d7a9b2a8ffddfe0602381b4cb7dcc9a7bec58 Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:27:40 -0500 Subject: [PATCH 3/7] Rename prod release workflow --- .github/workflows/prod.yml | 70 +++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 2 +- 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/prod.yml diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml new file mode 100644 index 00000000..2471e775 --- /dev/null +++ b/.github/workflows/prod.yml @@ -0,0 +1,70 @@ +name: PROD (release) + +on: + release: + types: [published] + workflow_dispatch: + inputs: + tag: + description: Container tag; usually test, prod or PR number, can be omitted + default: test + required: true + type: string + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true + +permissions: {} + +jobs: + deploy: + name: Deploy (PROD) + secrets: inherit + uses: ./.github/workflows/.deploy.yml + with: + aws_user_pools_web_client_id: 4bu2n8at3m32a2fqnvd4t06la1 + batch_client_rfsh_api_tkn_op_secret_name: fom-client-app-api + environment: prod + email_notify: FLNR.AdminServicesCariboo@gov.bc.ca + logout_chain_url: https://logon7.gov.bc.ca/clp-cgi/logoff.cgi?retnow=1&returl=https://loginproxy.gov.bc.ca/auth/realms/standard/protocol/openid-connect/logout?redirect_uri= + tag: ${{ inputs.tag }} + target: prod + url: fom.nrs.gov.bc.ca + + images-backup: + name: Backup images (PROD) + continue-on-error: true # If no prod tags + needs: deploy + permissions: + packages: write + runs-on: ubuntu-24.04 + strategy: + matrix: + component: [api, admin, db, public] + steps: + - uses: shrink/actions-docker-registry-tag@v4 + with: + registry: ghcr.io + repository: ${{ github.repository }}/${{ matrix.component }} + target: prod + tags: prod-backup + + images-promote: + name: Promote images (PROD) + needs: [deploy, images-backup] + permissions: + packages: write + runs-on: ubuntu-24.04 + strategy: + matrix: + component: [api, admin, db, public] + steps: + - uses: shrink/actions-docker-registry-tag@v4 + with: + registry: ghcr.io + repository: ${{ github.repository }}/${{ matrix.component }} + target: ${{ needs.deploy.outputs.tag }} + tags: | + prod + ${{ github.event.release.tag_name }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2471e775..f501a7b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: PROD (release) +name: PROD (dispatch, release) on: release: From e01ca8830a261fa9f18961b99233731b164212e5 Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:28:58 -0500 Subject: [PATCH 4/7] Rename merge and demo workflows --- .github/workflows/{merge-demo.yml => demo.yml} | 0 .github/workflows/{merge-main.yml => merge.yml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{merge-demo.yml => demo.yml} (100%) rename .github/workflows/{merge-main.yml => merge.yml} (100%) diff --git a/.github/workflows/merge-demo.yml b/.github/workflows/demo.yml similarity index 100% rename from .github/workflows/merge-demo.yml rename to .github/workflows/demo.yml diff --git a/.github/workflows/merge-main.yml b/.github/workflows/merge.yml similarity index 100% rename from .github/workflows/merge-main.yml rename to .github/workflows/merge.yml From c4a4b9d316aecd286615df9987130ddbb5bfc294 Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:29:32 -0500 Subject: [PATCH 5/7] Prod workflow replaces release workflow --- .github/workflows/prod.yml | 2 +- .github/workflows/release.yml | 70 ----------------------------------- 2 files changed, 1 insertion(+), 71 deletions(-) delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index 2471e775..f501a7b3 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -1,4 +1,4 @@ -name: PROD (release) +name: PROD (dispatch, release) on: release: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index f501a7b3..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: PROD (dispatch, release) - -on: - release: - types: [published] - workflow_dispatch: - inputs: - tag: - description: Container tag; usually test, prod or PR number, can be omitted - default: test - required: true - type: string - -concurrency: - group: ${{ github.workflow }} - cancel-in-progress: true - -permissions: {} - -jobs: - deploy: - name: Deploy (PROD) - secrets: inherit - uses: ./.github/workflows/.deploy.yml - with: - aws_user_pools_web_client_id: 4bu2n8at3m32a2fqnvd4t06la1 - batch_client_rfsh_api_tkn_op_secret_name: fom-client-app-api - environment: prod - email_notify: FLNR.AdminServicesCariboo@gov.bc.ca - logout_chain_url: https://logon7.gov.bc.ca/clp-cgi/logoff.cgi?retnow=1&returl=https://loginproxy.gov.bc.ca/auth/realms/standard/protocol/openid-connect/logout?redirect_uri= - tag: ${{ inputs.tag }} - target: prod - url: fom.nrs.gov.bc.ca - - images-backup: - name: Backup images (PROD) - continue-on-error: true # If no prod tags - needs: deploy - permissions: - packages: write - runs-on: ubuntu-24.04 - strategy: - matrix: - component: [api, admin, db, public] - steps: - - uses: shrink/actions-docker-registry-tag@v4 - with: - registry: ghcr.io - repository: ${{ github.repository }}/${{ matrix.component }} - target: prod - tags: prod-backup - - images-promote: - name: Promote images (PROD) - needs: [deploy, images-backup] - permissions: - packages: write - runs-on: ubuntu-24.04 - strategy: - matrix: - component: [api, admin, db, public] - steps: - - uses: shrink/actions-docker-registry-tag@v4 - with: - registry: ghcr.io - repository: ${{ github.repository }}/${{ matrix.component }} - target: ${{ needs.deploy.outputs.tag }} - tags: | - prod - ${{ github.event.release.tag_name }} From 3909c5ccd06069c76f04b4c7350a2f87bef70838 Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:33:42 -0500 Subject: [PATCH 6/7] Drop release workflow for now --- .github/workflows/prod.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index f501a7b3..8fe59c66 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -1,12 +1,10 @@ -name: PROD (dispatch, release) +name: PROD (dispatch) on: - release: - types: [published] workflow_dispatch: inputs: tag: - description: Container tag; usually test, prod or PR number, can be omitted + description: Container tag; usually test, prod or PR number default: test required: true type: string @@ -52,7 +50,7 @@ jobs: images-promote: name: Promote images (PROD) - needs: [deploy, images-backup] + needs: [images-backup] permissions: packages: write runs-on: ubuntu-24.04 @@ -64,7 +62,5 @@ jobs: with: registry: ghcr.io repository: ${{ github.repository }}/${{ matrix.component }} - target: ${{ needs.deploy.outputs.tag }} - tags: | - prod - ${{ github.event.release.tag_name }} + target: ${{ inputs.tag }} + tags: prod From 1f7fb433d3d5436510e75474bc9d065958c0a566 Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Tue, 14 Jan 2025 19:42:58 -0500 Subject: [PATCH 7/7] Rename image job --- .github/workflows/merge.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 83d159cb..23eca067 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -29,8 +29,8 @@ jobs: target: test url: fom-test.nrs.gov.bc.ca - images-backup: - name: Backup images (PROD) + images-promote: + name: Promote images (TEST) continue-on-error: true # If no prod tags needs: [deploy] permissions: