Skip to content

Additional tests

Additional tests #1101

Workflow file for this run

name: Pull Request
on:
pull_request:
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:
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/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add_markdown: |
---
Thanks for the PR!
Any successful deployments (not always required) will be available below.
[Backend](https://${{ env.PREFIX }}-backend.${{ env.DOMAIN }}/) available
[Frontend](https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }}/) available
Once merged, code will be promoted and handed off to following workflow run.
[Main Merge Workflow](https://github.com/${{ github.repository }}/actions/workflows/merge-main.yml)
builds:
name: Builds
runs-on: ubuntu-22.04
permissions:
packages: write
strategy:
matrix:
package: [backend, database, database-migrations, frontend]
include:
- package: backend
triggers: ('backend/')
build_file: ./backend/Dockerfile
build_context: ./backend
- package: database
triggers: ('database/')
build_file: ./database/Dockerfile
build_context: ./database
- package: frontend
triggers: ('frontend/')
build_file: ./frontend/Dockerfile
build_context: ./frontend
- package: database-migrations
triggers: ('backend/db')
build_file: ./backend/db/Dockerfile
build_context: ./backend/db
steps:
- uses: actions/checkout@v3
- uses: bcgov-nr/[email protected]
with:
package: ${{ matrix.package }}
tag: ${{ github.event.number }}
tag_fallback: test
token: ${{ secrets.GITHUB_TOKEN }}
triggers: ${{ matrix.triggers }}
build_file: ${{ matrix.build_file }}
build_context: ${{ matrix.build_context }}
deploys:
name: Deploys
needs:
- builds
environment: dev
runs-on: ubuntu-22.04
strategy:
matrix:
name: [backend, database, init, frontend]
include:
- name: backend
file: backend/openshift.deploy.yml
overwrite: true
parameters:
-p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p PROMOTE_MIGRATION=${{ github.repository }}/database-migrations:${{ github.event.number }}
- name: database
file: database/openshift.deploy.yml
overwrite: false
- name: frontend
file: frontend/openshift.deploy.yml
overwrite: true
parameters: -p MIN_REPLICAS=1 -p MAX_REPLICAS=2
-p KEYCLOAK_URL=${{ vars.KEYCLOAK_URL_DEV}}
- name: init
file: common/openshift.init.yml
overwrite: false
steps:
- uses: bcgov-nr/[email protected]
with:
file: ${{ matrix.file }}
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
overwrite: ${{ matrix.overwrite }}
penetration_test: false
parameters:
-p ZONE=${{ github.event.number }} -p NAME=${{ github.event.repository.name }}
-p PROMOTE=${{ github.repository }}/${{ matrix.name }}:${{ github.event.number }}
${{ matrix.parameters }}
cypress-tests:
needs: deploys
env:
DOMAIN: apps.silver.devops.gov.bc.ca
PREFIX: ${{ github.event.repository.name }}-${{ github.event.number }}
runs-on: ubuntu-latest
steps:
- name: Checkout GitCode
uses: actions/checkout@v3
- name: Run Cypress Test
uses: cypress-io/github-action@v5
with:
working-directory: ./frontend
command: npx cypress run --browser chrome --config baseUrl=https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }} --env auth_base_url=${{ vars.KEYCLOAK_URL_DEV }},auth_realm=${{ vars.KEYCLOAK_REALM }},auth_client_id=${{ vars.KEYCLOAK_CLIENT_ID }},keycloak_user=${{ vars.KEYCLOAK_USER }},keycloak_password=${{ secrets.KEYCLOAK_PASSWORD }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: always()
with:
name: cypress-artifacts
path: |-
/home/runner/work/nr-compliance-enforcement/nr-compliance-enforcement/frontend/cypress/videos/
/home/runner/work/nr-compliance-enforcement/nr-compliance-enforcement/frontend/cypress/screenshots/