Skip to content

Ci/merge workflow

Ci/merge workflow #26

Workflow file for this run

name: PR
on:
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
# PR open and close use the same group, allowing only one at a time
group: pr-${{ github.workflow }}-${{ github.event.number }}
cancel-in-progress: true
jobs:
pr-greeting:
if: "!github.event.pull_request.head.repo.fork"
name: PR Greeting
env:
DOMAIN: apps.silver.devops.gov.bc.ca
PREFIX: ${{ github.event.repository.name }}-${{ github.event.number }}
runs-on: ubuntu-22.04
permissions:
pull-requests: write
steps:
- name: PR Greeting
uses: bcgov-nr/action-pr-description-add@v1.1.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add_markdown: |
---
Thanks for the PR!
Deployments, as required, will be available below:
- [Frontend](https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }})
- [Backend](https://${{ env.PREFIX }}-backend.${{ env.DOMAIN }})
- [Backend-java](https://${{ env.PREFIX }}-backend-java.${{ env.DOMAIN }})
- [Backend-py](https://${{ env.PREFIX }}-backend-py.${{ env.DOMAIN }})
- [Backend-go](https://${{ env.PREFIX }}-backend-go.${{ env.DOMAIN }})
Please create PRs in draft mode. Mark as ready to enable:
- [Analysis Workflow](https://github.com/${{ github.repository }}/actions/workflows/analysis.yml)
- [Tests Workflow](https://github.com/${{ github.repository }}/actions/workflows/tests.yml)
After merge, new images are promoted to:
- [Main Merge Workflow](https://github.com/${{ github.repository }}/actions/workflows/merge-main.yml)
# https://github.com/bcgov-nr/action-builder-ghcr
builds:
name: Builds
if: "!github.event.pull_request.head.repo.fork"
permissions:
packages: write
runs-on: ubuntu-22.04
strategy:
matrix:
package: [backend-go, backend-java, backend-py, migrations-go, migrations-py]
include:
- package: backend-go
triggers: ('backend-go/')
- package: backend-java
triggers: ('backend-java/')
- package: backend-py
triggers: ('backend-py/')
- package: migrations-py
triggers: ('backend-py/db')
build_context: ./backend-py/db
build_file: ./backend-py/db/Dockerfile
- package: migrations-go
triggers: ('backend-go/db')
build_context: ./backend-go/db
build_file: ./backend-go/db/Dockerfile
steps:
- uses: bcgov-nr/action-builder-ghcr@v1.2.1
with:
package: ${{ matrix.package }}
triggers: ${{ matrix.triggers }}
tag: ${{ github.event.number }}
tag_fallback: test
token: ${{ secrets.GITHUB_TOKEN }}
build_context: ${{ matrix.build_context }}
build_file: ${{ matrix.build_file }}
# https://github.com/bcgov-nr/action-deployer-openshift
deploys:
name: Deploys
if: "!github.event.pull_request.head.repo.fork"
needs: [builds]
permissions:
issues: write
runs-on: ubuntu-22.04
strategy:
matrix:
name: [database, backend-go, backend-java, backend-py, frontend]
include:
- name: database
file: database/openshift.deploy.yml
overwrite: false
repository: bcgov/quickstart-openshift
triggers: ('backend-go' 'backend-java' 'backend-py')
- 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:${{ github.event.number }}
triggers: ('backend-go/')
- name: backend-java
file: backend-java/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
triggers: ('backend-java/')
- 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:${{ github.event.number }}
triggers: ('backend-py/')
- name: frontend
file: frontend/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
repository: bcgov/quickstart-openshift
triggers: ('database/' 'backend/' 'frontend/')
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=${{ github.event.number }} -p NAME=${{ github.event.repository.name }}
-p PROMOTE=${{ github.repository }}/${{ matrix.name }}:${{ github.event.number }}
${{ matrix.parameters }}
repository: ${{ matrix.repository }}
triggers: ${{ matrix.triggers }}
verification_path: ${{ matrix.verification_path }}