Skip to content

Commit

Permalink
chore(ci): deploy frontend (#69)
Browse files Browse the repository at this point in the history
Co-authored-by: Derek Roberts <[email protected]>
  • Loading branch information
fergmac and DerekRoberts authored Oct 11, 2024
1 parent b0d44b1 commit 3213b81
Show file tree
Hide file tree
Showing 23 changed files with 19,196 additions and 517 deletions.
107 changes: 59 additions & 48 deletions .github/workflows/.deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize
uses: bcgov-nr/[email protected].0
uses: bcgov-nr/[email protected].1
with:
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
oc_version: "4.14.37"
file: common/openshift.init.yml
overwrite: true
parameters:
Expand All @@ -54,23 +55,13 @@ jobs:
# environment: ${{ inputs.environment }}
runs-on: ubuntu-latest
steps:
# - name: Deploy Frontend
# uses: bcgov-nr/[email protected]
# with:
# oc_namespace: ${{ vars.OC_NAMESPACE }}
# oc_server: ${{ vars.OC_SERVER }}
# oc_token: ${{ secrets.OC_TOKEN }}
# file: frontend/openshift.deploy.yml
# overwrite: true
# parameters:
# -p TAG=${{ inputs.tag }} -p TARGET=${{ inputs.target }}

- name: Database
uses: bcgov-nr/[email protected].0
uses: bcgov-nr/[email protected].1
with:
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
oc_version: "4.14.37"
file: database/postgresql.dc.yml
overwrite: true
parameters:
Expand All @@ -92,39 +83,59 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Deploy Backend
uses: bcgov-nr/[email protected]
uses: bcgov-nr/[email protected]
with:
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
oc_version: "4.14.37"
file: backend/openshift.deploy.yml
parameters:
-p NAME_SUFFIX=-dev-${{ github.event.number }}
-p ENV_NAME=dev
-p E_LICENSING_URL=${{ vars.E_LICENSING_URL }}
-p DB_REPLICATE=${{ vars.DB_REPLICATE }}
-p DJANGO_DEBUG=${{ vars.DJANGO_DEBUG }}
-p ENABLE_ADDITIONAL_DOCUMENTS=${{ vars.ENABLE_ADDITIONAL_DOCUMENTS }}
-p S3_PRIVATE_BUCKET=${{ vars.S3_PRIVATE_BUCKET }}
-p S3_PRIVATE_HOST=${{ vars.S3_PRIVATE_HOST }}
-p S3_WELL_EXPORT_BUCKET=${{ vars.S3_WELL_EXPORT_BUCKET }}
-p SSO_AUDIENCE=${{ vars.SSO_AUDIENCE }}
-p SSO_AUTH_HOST=${{ vars.SSO_AUTH_HOST }}
-p SSO_CLIENT=${{ vars.SSO_CLIENT }}
-p SSO_IDP_HINT=${{ vars.SSO_IDP_HINT }}
-p SSO_PORT=${{ vars.SSO_PORT }}
-p SSO_PUBKEY=${{ vars.SSO_PUBKEY }}
-p SSO_REALM=${{ vars.SSO_REALM }}
-p SSO_TEST_AUDIENCE=${{ vars.SSO_TEST_AUDIENCE }}
-p SSO_TEST_CLIENT=${{ vars.SSO_TEST_CLIENT }}
-p GDAL_LIBRARY_PATH=${{ vars.GDAL_LIBRARY_PATH }}
-p GEOS_LIBRARY_PATH=${{ vars.GEOS_LIBRARY_PATH }}
-p S3_AQUIFER_BUCKET=${{ vars.S3_AQUIFER_BUCKET }}
-p S3_REGISTRANT_BUCKET=${{ vars.S3_REGISTRANT_BUCKET }}
-p S3_PRIVATE_ROOT_BUCKET=${{ vars.S3_PRIVATE_ROOT_BUCKET }}
-p S3_PRIVATE_AQUIFER_BUCKET=${{ vars.S3_PRIVATE_AQUIFER_BUCKET }}
-p S3_PRIVATE_REGISTRANT_BUCKET=${{ vars.S3_PRIVATE_REGISTRANT_BUCKET }}
-p S3_PRIVATE_WELL_BUCKET=${{ vars.S3_PRIVATE_WELL_BUCKET }}
-p ENABLE_AQUIFERS_SEARCH=${{ vars.ENABLE_AQUIFERS_SEARCH }}
-p EMAIL_NOTIFICATION_RECIPIENT=${{ vars.EMAIL_NOTIFICATION_RECIPIENT }}
-p GEOCODER_ADDRESS_API_BASE=${{ vars.GEOCODER_ADDRESS_API_BASE }}

frontend:
name: Frontend
needs: [ init, database, backend ]
# environment: ${{ inputs.environment }}
runs-on: ubuntu-latest
steps:
- name: Deploy Frontend
uses: bcgov-nr/[email protected]
with:
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
file: backend/openshift.backend.yml
parameters:
-p NAME_SUFFIX=-dev-${{ github.event.number }}
-p ENV_NAME=dev
-p E_LICENSING_URL=${{ vars.E_LICENSING_URL }}
-p DB_REPLICATE=${{ vars.DB_REPLICATE }}
-p DJANGO_DEBUG=${{ vars.DJANGO_DEBUG }}
-p ENABLE_ADDITIONAL_DOCUMENTS=${{ vars.ENABLE_ADDITIONAL_DOCUMENTS }}
-p S3_PRIVATE_BUCKET=${{ vars.S3_PRIVATE_BUCKET }}
-p S3_PRIVATE_HOST=${{ vars.S3_PRIVATE_HOST }}
-p S3_WELL_EXPORT_BUCKET=${{ vars.S3_WELL_EXPORT_BUCKET }}
-p SSO_AUDIENCE=${{ vars.SSO_AUDIENCE }}
-p SSO_AUTH_HOST=${{ vars.SSO_AUTH_HOST }}
-p SSO_CLIENT=${{ vars.SSO_CLIENT }}
-p SSO_IDP_HINT=${{ vars.SSO_IDP_HINT }}
-p SSO_PORT=${{ vars.SSO_PORT }}
-p SSO_PUBKEY=${{ vars.SSO_PUBKEY }}
-p SSO_REALM=${{ vars.SSO_REALM }}
-p SSO_TEST_AUDIENCE=${{ vars.SSO_TEST_AUDIENCE }}
-p SSO_TEST_CLIENT=${{ vars.SSO_TEST_CLIENT }}
-p GDAL_LIBRARY_PATH=${{ vars.GDAL_LIBRARY_PATH }}
-p GEOS_LIBRARY_PATH=${{ vars.GEOS_LIBRARY_PATH }}
-p S3_AQUIFER_BUCKET=${{ vars.S3_AQUIFER_BUCKET }}
-p S3_REGISTRANT_BUCKET=${{ vars.S3_REGISTRANT_BUCKET }}
-p S3_PRIVATE_ROOT_BUCKET=${{ vars.S3_PRIVATE_ROOT_BUCKET }}
-p S3_PRIVATE_AQUIFER_BUCKET=${{ vars.S3_PRIVATE_AQUIFER_BUCKET }}
-p S3_PRIVATE_REGISTRANT_BUCKET=${{ vars.S3_PRIVATE_REGISTRANT_BUCKET }}
-p S3_PRIVATE_WELL_BUCKET=${{ vars.S3_PRIVATE_WELL_BUCKET }}
-p ENABLE_AQUIFERS_SEARCH=${{ vars.ENABLE_AQUIFERS_SEARCH }}
-p EMAIL_NOTIFICATION_RECIPIENT=${{ vars.EMAIL_NOTIFICATION_RECIPIENT }}
-p GEOCODER_ADDRESS_API_BASE=${{ vars.GEOCODER_ADDRESS_API_BASE }}
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
oc_version: "4.14.30"
file: frontend/openshift.deploy.yml
parameters:
-p NAME_SUFFIX=-dev-${{ github.event.number }}
-p ENV_NAME=dev

146 changes: 73 additions & 73 deletions .github/workflows/.tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,81 +20,81 @@ env:
PREFIX: ${{ github.event.repository.name }}-${{ inputs.target }}

jobs:
# integration-tests:
# name: Integration
# runs-on: ubuntu-latest
# timeout-minutes: 1
# steps:
# - uses: actions/checkout@v4
# - id: cache-npm
# uses: actions/cache@v4
# with:
# path: ~/.npm
# key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-build-cache-node-modules-
# ${{ runner.os }}-build-
# ${{ runner.os }}-
integration-tests:
name: Integration
runs-on: ubuntu-latest
timeout-minutes: 1
steps:
- uses: actions/checkout@v4
- id: cache-npm
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-cache-node-modules-
${{ runner.os }}-build-
${{ runner.os }}-
# - env:
# API_NAME: nest
# BASE_URL: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.${{ env.DOMAIN }}
# run: |
# cd tests/integration
# npm ci
# node src/main.js
- env:
API_NAME: nest
BASE_URL: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.${{ env.DOMAIN }}
run: |
cd tests/integration
npm ci
node src/main.js
# e2e-tests:
# name: E2E
# defaults:
# run:
# working-directory: frontend
# runs-on: ubuntu-latest
# timeout-minutes: 5
# strategy:
# matrix:
# project: [ chromium, Google Chrome, firefox, safari, Microsoft Edge ]
# steps:
# - uses: actions/checkout@v4
# name: Checkout
# - uses: actions/setup-node@v4
# name: Setup Node
# with:
# node-version: 20
# cache: 'npm'
# cache-dependency-path: frontend/package-lock.json
# - name: Install dependencies
# run: |
# npm ci
# npx playwright install --with-deps
e2e-tests:
name: E2E
defaults:
run:
working-directory: frontend
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
matrix:
project: [ chromium, Google Chrome, firefox, safari, Microsoft Edge ]
steps:
- uses: actions/checkout@v4
name: Checkout
- uses: actions/setup-node@v4
name: Setup Node
with:
node-version: 20
cache: 'npm'
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: |
npm ci
npx playwright install --with-deps
# - name: Run Tests
# env:
# E2E_BASE_URL: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.${{ env.DOMAIN }}/
# CI: 'true'
# run: |
# npx playwright test --project="${{ matrix.project }}" --reporter=html
- name: Run Tests
env:
E2E_BASE_URL: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.${{ env.DOMAIN }}/
CI: 'true'
run: |
npx playwright test --project="${{ matrix.project }}" --reporter=html
# - uses: actions/upload-artifact@v4
# if: ${{ !cancelled() }}
# name: upload results
# with:
# name: playwright-report-${{ matrix.project }}
# path: "./frontend/playwright-report" # path from current folder
# retention-days: 7
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
name: upload results
with:
name: playwright-report-${{ matrix.project }}
path: "./frontend/playwright-report" # path from current folder
retention-days: 7

# load-tests:
# name: Load
# runs-on: ubuntu-latest
# strategy:
# matrix:
# name: [backend, frontend]
# steps:
# - uses: actions/checkout@v4
# - uses: grafana/[email protected]
# env:
# BACKEND_URL: https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }}/api
# FRONTEND_URL: https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }}
# with:
# filename: ./tests/load/${{ matrix.name }}-test.js
# flags: --vus 10 --duration 30s
load-tests:
name: Load
runs-on: ubuntu-latest
strategy:
matrix:
name: [backend, frontend]
steps:
- uses: actions/checkout@v4
- uses: grafana/[email protected]
env:
BACKEND_URL: https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }}/api
FRONTEND_URL: https://${{ env.PREFIX }}-frontend.${{ env.DOMAIN }}
with:
filename: ./tests/load/${{ matrix.name }}-test.js
flags: --vus 10 --duration 30s
39 changes: 0 additions & 39 deletions .github/workflows/demo.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/pr-open.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ concurrency:
cancel-in-progress: true

jobs:
# # https://github.com/bcgov-nr/action-builder-ghcr
# https://github.com/bcgov-nr/action-builder-ghcr
builds:
name: Builds
runs-on: ubuntu-latest
strategy:
matrix:
package: [database, backend]
package: [database, backend, frontend]
timeout-minutes: 20
steps:
- uses: bcgov-nr/[email protected]
Expand Down
Loading

0 comments on commit 3213b81

Please sign in to comment.