Skip to content

feat: CEEB Export Scripts and Export Merge Tool (#832) #204

feat: CEEB Export Scripts and Export Merge Tool (#832)

feat: CEEB Export Scripts and Export Merge Tool (#832) #204

Workflow file for this run

name: Merge to Release
on:
push:
branches: [release/*]
paths-ignore:
- "*.md"
- ".github/**"
- ".github/graphics/**"
- "!.github/workflows/**"
workflow_dispatch:
inputs:
pr_no:
description: "PR-numbered container set to deploy"
type: number
required: true
concurrency:
# Cancel previous pending/running workflows
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
vars:
name: Set Variables
outputs:
pr: ${{ steps.pr.outputs.pr }}
runs-on: ubuntu-22.04
timeout-minutes: 1
steps:
- uses: actions/checkout@v4
# Get PR number for squash merges to release
- name: PR Number
id: pr
uses: ./.github/actions/get-pr-number
- name: Set PR Output
run: echo "pr=${{ steps.pr.outputs.pr }}" >> $GITHUB_OUTPUT
# https://github.com/bcgov/quickstart-openshift-helpers
deploy-test:
name: Deploy (test)
needs: vars
uses: bcgov/quickstart-openshift-helpers/.github/workflows/[email protected]
secrets:
oc_namespace: ${{ secrets.OC_NAMESPACE }}
oc_token: ${{ secrets.OC_TOKEN }}
with:
environment: test
tag: ${{ needs.vars.outputs.pr }}
params: --set backend.deploymentStrategy=RollingUpdate
--set frontend.deploymentStrategy=RollingUpdate
--set webeoc.deploymentStrategy=RollingUpdate
--set global.autoscaling=true
--set frontend.pdb.enabled=true
--set backend.pdb.enabled=true
--set webeoc.pdb.enabled=true
--set nats.config.cluster.replicas=3
--set nats.config.cluster.enabled=true
--set backup.enabled=true
--set backup.persistence.size=256Mi
healthcheck:
name: Healthcheck Test Deployment
runs-on: ubuntu-22.04
needs: [vars]
environment: test
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- run: |
sleep 120 # wait for helm release to startup
./.github/scripts/rollout_healthcheck.sh
env:
FORCE_PASS: 1 # to prevent pipeline blocking
TIMEOUT_SECONDS: 420 # 7m
POLL_INTERVAL_SECONDS: 15
LABEL_SELECTOR: "app.kubernetes.io/instance=nr-compliance-enforcement-test"
OC_NAMESPACE: ${{ vars.OC_NAMESPACE }}
OC_SERVER: ${{ vars.OC_SERVER }}
OC_TOKEN: ${{ secrets.OC_TOKEN }}
promote:
name: Promote Images
needs: [deploy-test, vars]
runs-on: ubuntu-22.04
permissions:
packages: write
strategy:
matrix:
package: [migrations, backend, frontend, webeoc]
timeout-minutes: 1
steps:
- uses: shrink/actions-docker-registry-tag@v4
with:
registry: ghcr.io
repository: ${{ github.repository }}/${{ matrix.package }}
target: ${{ needs.vars.outputs.pr }}
tags: test
generate-schema-spy:
name: Generate SchemaSpy Documentation
runs-on: ubuntu-22.04
services:
postgres:
image: postgis/postgis:16-3.4
env:
POSTGRES_DB: default
POSTGRES_USER: postgres
POSTGRES_PASSWORD: default
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Flyway
uses: docker://flyway/flyway:10
env:
FLYWAY_URL: jdbc:postgresql://postgres:5432/default
FLYWAY_USER: postgres
FLYWAY_PASSWORD: default
FLYWAY_LOCATIONS: filesystem:./migrations/migrations
FLYWAY_DEFAULT_SCHEMA: "public"
with:
args: info migrate info
- name: Create Output Folder
run: |
mkdir output
chmod a+rwx -R output
- name: Run Schemaspy
run: docker run --network host -v "$PWD/output:/output" schemaspy/schemaspy:6.2.4 -t pgsql11 -db default -host 127.0.0.1 -port 5432 -u postgres -p default -schemas public
- name: Deploy to Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: output
target-folder: schemaspy