Skip to content

chore(ci): add timeouts to pr-open and merge workflows #223

chore(ci): add timeouts to pr-open and merge workflows

chore(ci): add timeouts to pr-open and merge workflows #223

Workflow file for this run

name: Merge
on:
push:
branches: [main]
paths-ignore:
- '*.md'
- '.github/**'
- '.github/graphics/**'
- '!.github/workflows/**'
concurrency:
# Do not interrupt previous workflows
group: ${{ github.workflow }}
cancel-in-progress: false
jobs:
vars:
name: Variables
outputs:
pr: ${{ steps.pr.outputs.pr }}
runs-on: ubuntu-24.04
timeout-minutes: 1
steps:
# Get PR number for squash merges to main
- name: PR Number
id: pr
uses: bcgov/[email protected]
init-test:
name: Init (TEST)
needs: vars
runs-on: ubuntu-24.04
timeout-minutes: 1
steps:
- uses: bcgov/[email protected]
with:
file: common/openshift.init.yml
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
parameters:
-p ZONE=test
-p CHES_CLIENT_SECRET=${{ secrets.CHES_CLIENT_SECRET }}
-p S3_SECRETKEY=${{ secrets.S3_SECRETKEY }}
-p VITE_USER_POOLS_WEB_CLIENT_ID=${{ vars.VITE_USER_POOLS_WEB_CLIENT_ID }}
-p VITE_QUESTIONS_API_KEY=${{ secrets.VITE_QUESTIONS_API_KEY }}
deploys-test:
name: Deploys (TEST)
needs: [vars, init-test]
environment: test
permissions:
issues: write
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
matrix:
name: [backend, frontend]
include:
- name: backend
verification_path: /health
steps:
- uses: bcgov/[email protected]
with:
file: ${{ matrix.name }}/openshift.deploy.yml
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
parameters: -p ZONE=test -p TAG=${{ needs.vars.outputs.pr }}
verification_path: ${{ matrix.verification_path }}
init-prod:
name: Init (PROD)
needs: [vars, deploys-test]
runs-on: ubuntu-24.04
timeout-minutes: 1
steps:
- uses: bcgov/[email protected]
with:
file: common/openshift.init.yml
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
parameters:
-p ZONE=prod
-p CHES_CLIENT_SECRET=${{ secrets.CHES_CLIENT_SECRET }}
-p S3_SECRETKEY=${{ secrets.S3_SECRETKEY }}
deploys-prod:
name: Deploys (PROD)
needs: [vars, init-prod]
environment: prod
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
matrix:
name: [backend, frontend]
include:
- name: backend
verification_path: /health
steps:
- uses: bcgov/[email protected]
with:
file: ${{ matrix.name }}/openshift.deploy.yml
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
parameters: -p ZONE=prod -p TAG=${{ needs.vars.outputs.pr }}
verification_path: ${{ matrix.verification_path }}
image-promotions:
name: Promote images
needs: [vars, deploys-prod]
permissions:
packages: write
runs-on: ubuntu-24.04
strategy:
matrix:
component: [backend, frontend]
timeout-minutes: 1
steps:
- uses: shrink/actions-docker-registry-tag@v4
with:
registry: ghcr.io
repository: ${{ github.repository }}/${{ matrix.component }}
target: ${{ needs.vars.outputs.pr }}
tags: prod