Skip to content

Commit

Permalink
Troubleshoot
Browse files Browse the repository at this point in the history
  • Loading branch information
DerekRoberts committed Sep 23, 2023
1 parent 9665ce8 commit 66bfdcc
Show file tree
Hide file tree
Showing 2 changed files with 168 additions and 172 deletions.
336 changes: 166 additions & 170 deletions .github/workflows/merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
package: [init, database, backend-go, backend-java, backend-py, frontend]
# package: [init, database, backend-go, backend-java, backend-py, frontend]
include:
- name: init
file: common/openshift.init.yml
Expand All @@ -33,21 +33,17 @@ jobs:
- name: backend-go
file: backend-go/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p PROMOTE_MIGRATION=${{ github.repository }}/migrations-go:test
parameters: -p PROMOTE_MIGRATION=${{ github.repository }}/migrations-go:test
- name: backend-java
file: backend-java/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
- name: backend-py
file: backend-py/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p PROMOTE_MIGRATION=${{ github.repository }}/migrations-py:test
parameters: -p PROMOTE_MIGRATION=${{ github.repository }}/migrations-py:test
- name: frontend
file: frontend/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
repository: bcgov/quickstart-openshift
steps:
- uses: bcgov-nr/action-deployer-openshift@v1.4.0
Expand All @@ -64,170 +60,170 @@ jobs:
repository: ${{ matrix.repository }}
verification_path: ${{ matrix.verification_path }}

integration-tests:
needs: [deploys-test]
name: Integration Tests for APIs
defaults:
run:
working-directory: integration-tests
runs-on: ubuntu-22.04
strategy:
matrix:
name: [quarkus, fiber, fastapi]
include:
- name: quarkus
baseUrl: https://quickstart-openshift-backends-test-backend-java.apps.silver.devops.gov.bc.ca
- name: fiber
baseUrl: https://quickstart-openshift-backends-test-backend-go.apps.silver.devops.gov.bc.ca
- name: fastapi
baseUrl: https://quickstart-openshift-backends-test-backend-py.apps.silver.devops.gov.bc.ca
steps:
- uses: actions/checkout@v4
name: Checkout
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list
- name: Install dependencies
run: npm ci
- name: Run integration tests
run: BASE_URL=${{ matrix.baseUrl }} API_NAME=${{ matrix.name }} node src/main.js
# integration-tests:
# needs: [deploys-test]
# name: Integration Tests for APIs
# defaults:
# run:
# working-directory: integration-tests
# runs-on: ubuntu-22.04
# strategy:
# matrix:
# name: [quarkus, fiber, fastapi]
# include:
# - name: quarkus
# baseUrl: https://quickstart-openshift-backends-test-backend-java.apps.silver.devops.gov.bc.ca
# - name: fiber
# baseUrl: https://quickstart-openshift-backends-test-backend-go.apps.silver.devops.gov.bc.ca
# - name: fastapi
# baseUrl: https://quickstart-openshift-backends-test-backend-py.apps.silver.devops.gov.bc.ca
# steps:
# - uses: actions/checkout@v4
# name: Checkout
# - name: Cache node modules
# id: cache-npm
# uses: actions/cache@v3
# env:
# cache-name: cache-node-modules
# with:
# # npm cache files are stored in `~/.npm` on Linux/macOS
# path: ~/.npm
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-build-${{ env.cache-name }}-
# ${{ runner.os }}-build-
# ${{ runner.os }}-
# - if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
# name: List the state of node modules
# continue-on-error: true
# run: npm list
# - name: Install dependencies
# run: npm ci
# - name: Run integration tests
# run: BASE_URL=${{ matrix.baseUrl }} API_NAME=${{ matrix.name }} node src/main.js

ghcr-cleanup:
name: GHCR Cleanup
runs-on: ubuntu-latest
strategy:
matrix:
name: [backend-go, backend-py, backend-java, migrations-go, migrations-py]
steps:
- name: Keep last 50
uses: actions/delete-package-versions@v4
with:
package-name: "${{ github.event.repository.name }}/${{ matrix.name }}"
package-type: "container"
min-versions-to-keep: 50
ignore-versions: "^(prod|test)$"
# ghcr-cleanup:
# name: GHCR Cleanup
# runs-on: ubuntu-latest
# strategy:
# matrix:
# name: [backend-go, backend-py, backend-java, migrations-go, migrations-py]
# steps:
# - name: Keep last 50
# uses: actions/delete-package-versions@v4
# with:
# package-name: "${{ github.event.repository.name }}/${{ matrix.name }}"
# package-type: "container"
# min-versions-to-keep: 50
# ignore-versions: "^(prod|test)$"

deploys-prod:
name: PROD Deploys
environment: prod
needs: [integration-tests]
permissions:
issues: write
runs-on: ubuntu-22.04
strategy:
matrix:
package: [init, database, backend-go, backend-java, backend-py, frontend]
include:
- name: init
file: common/openshift.init.yml
overwrite: false
repository: bcgov/quickstart-openshift
- name: database
file: database/openshift.deploy.yml
overwrite: false
repository: bcgov/quickstart-openshift
- name: backend-go
file: backend-go/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p PROMOTE_MIGRATION=${{ github.repository }}/migrations-go:prod
- name: backend-java
file: backend-java/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
- name: backend-py
file: backend-py/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p PROMOTE_MIGRATION=${{ github.repository }}/migrations-py:prod
- name: frontend
file: frontend/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
repository: bcgov/quickstart-openshift
steps:
- uses: bcgov-nr/action-deployer-openshift@v1.4.0
with:
file: ${{ matrix.file }}
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
overwrite: ${{ matrix.overwrite }}
parameters:
-p ZONE=prod -p NAME=${{ github.event.repository.name }}
-p PROMOTE=${{ github.repository }}/${{ matrix.name }}:prod
${{ matrix.parameters }}
repository: ${{ matrix.repository }}
verification_path: ${{ matrix.verification_path }}
# deploys-prod:
# name: PROD Deploys
# environment: prod
# needs: [integration-tests]
# permissions:
# issues: write
# runs-on: ubuntu-22.04
# strategy:
# matrix:
# package: [init, database, backend-go, backend-java, backend-py, frontend]
# include:
# - name: init
# file: common/openshift.init.yml
# overwrite: false
# repository: bcgov/quickstart-openshift
# - name: database
# file: database/openshift.deploy.yml
# overwrite: false
# repository: bcgov/quickstart-openshift
# - name: backend-go
# file: backend-go/openshift.deploy.yml
# overwrite: true
# parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
# -p PROMOTE_MIGRATION=${{ github.repository }}/migrations-go:prod
# - name: backend-java
# file: backend-java/openshift.deploy.yml
# overwrite: true
# parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
# - name: backend-py
# file: backend-py/openshift.deploy.yml
# overwrite: true
# parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
# -p PROMOTE_MIGRATION=${{ github.repository }}/migrations-py:prod
# - name: frontend
# file: frontend/openshift.deploy.yml
# overwrite: true
# parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
# repository: bcgov/quickstart-openshift
# steps:
# - uses: bcgov-nr/action-deployer-openshift@v1.4.0
# with:
# file: ${{ matrix.file }}
# oc_namespace: ${{ vars.OC_NAMESPACE }}
# oc_server: ${{ vars.OC_SERVER }}
# oc_token: ${{ secrets.OC_TOKEN }}
# overwrite: ${{ matrix.overwrite }}
# parameters:
# -p ZONE=prod -p NAME=${{ github.event.repository.name }}
# -p PROMOTE=${{ github.repository }}/${{ matrix.name }}:prod
# ${{ matrix.parameters }}
# repository: ${{ matrix.repository }}
# verification_path: ${{ matrix.verification_path }}

image-promotions:
name: Promote images to PROD
needs: [deploys-prod]
runs-on: ubuntu-22.04
permissions:
packages: write
strategy:
matrix:
component: [backend-py, backend-java, backend-go]
steps:
- uses: shrink/actions-docker-registry-tag@v3
with:
registry: ghcr.io
repository: ${{ github.repository }}/${{ matrix.component }}
target: test
tags: prod
# image-promotions:
# name: Promote images to PROD
# needs: [deploys-prod]
# runs-on: ubuntu-22.04
# permissions:
# packages: write
# strategy:
# matrix:
# component: [backend-py, backend-java, backend-go]
# steps:
# - uses: shrink/actions-docker-registry-tag@v3
# with:
# registry: ghcr.io
# repository: ${{ github.repository }}/${{ matrix.component }}
# target: test
# tags: prod

generate-schema-spy:
name: Generate SchemaSpy Documentation
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_DB: default
POSTGRES_USER: default
POSTGRES_PASSWORD: default
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: joshuaavalon/flyway-action@v3.0.0
name: Generate SchemaSpy docs for node backend
with:
url: jdbc:postgresql://postgres:5432/default
user: default
password: default
env:
FLYWAY_VALIDATE_MIGRATION_NAMING: true
FLYWAY_LOCATIONS: filesystem:./backend/db/migrations
FLYWAY_DEFAULT_SCHEMA: "users"
- 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 pgsql -db default -host 127.0.0.1 -port 5432 -u default -p default -schemas users
- name: Deploy to Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: output
target-folder: schemaspy
# generate-schema-spy:
# name: Generate SchemaSpy Documentation
# runs-on: ubuntu-22.04
# services:
# postgres:
# image: postgres
# env:
# POSTGRES_DB: default
# POSTGRES_USER: default
# POSTGRES_PASSWORD: default
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# ports:
# - 5432:5432
# steps:
# - uses: actions/checkout@v4
# - uses: joshuaavalon/flyway-action@v3.0.0
# name: Generate SchemaSpy docs for node backend
# with:
# url: jdbc:postgresql://postgres:5432/default
# user: default
# password: default
# env:
# FLYWAY_VALIDATE_MIGRATION_NAMING: true
# FLYWAY_LOCATIONS: filesystem:./backend/db/migrations
# FLYWAY_DEFAULT_SCHEMA: "users"
# - 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 pgsql -db default -host 127.0.0.1 -port 5432 -u default -p default -schemas users
# - name: Deploy to Pages
# uses: JamesIves/github-pages-deploy-action@v4
# with:
# folder: output
# target-folder: schemaspy
4 changes: 2 additions & 2 deletions .github/workflows/pr-open.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: PR

on:
pull_request:
branches: [main]
# pull_request:
# branches: [main]
workflow_dispatch:

concurrency:
Expand Down

0 comments on commit 66bfdcc

Please sign in to comment.