Skip to content
Draft
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 68 additions & 4 deletions .github/workflows/smoke-test.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,34 @@
name: FT Smoke Test
env:
Base_url: ${{ vars.BASE_URL }}
Users__0__Guid: ${{ secrets.USER_1_GUID }}
Users__0__User: ${{ secrets.USER_1_USERNAME }}
Users__0__Password: ${{ secrets.USER_1_PASSWORD }}
Users__1__Guid: ${{ secrets.USER_2_GUID }}
Users__1__User: ${{ secrets.USER_2_USERNAME }}
Users__1__Password: ${{ secrets.USER_2_PASSWORD }}
OPENSHIFT_SERVER: ${{ secrets.OPENSHIFT_SERVER }}
# service account: gitaction
OPENSHIFT_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }}
npm_config_ignore_scripts: true
TARGET_ENVIRONMENT: ${{ github.event.inputs.target_environment || 'dev' }}
TARGET_NAMESPACE: ${{ (github.event.inputs.target_environment || 'dev') == 'uat' && '3cd915-test' || '3cd915-dev' }}
TARGET_DB_NAME: ${{ (github.event.inputs.target_environment || 'dev') == 'dev' && 'PIMS_DEV' || (github.event.inputs.target_environment || 'dev') == 'test' && 'PIMS_TST' || 'PIMS_UAT' }}
TARGET_SERVER_NAME: ${{ (github.event.inputs.target_environment || 'dev') == 'uat' && 'sqlprd.th.gov.bc.ca' || 'sqldevtst.th.gov.bc.ca' }}
TARGET_DB_SECRET_NAME: ${{ (github.event.inputs.target_environment || 'dev') == 'dev' && 'pims-database' || (github.event.inputs.target_environment || 'dev') == 'test' && 'pims-database-test' || 'pims-database-uat' }}
TARGET_GIT_BRANCH: ${{ (github.event.inputs.target_environment || 'dev') == 'uat' && 'test' || 'dev' }}
on:
workflow_dispatch
workflow_dispatch:
inputs:
target_environment:
description: "Target environment"
required: true
type: choice
options:
- dev
- test
- uat
default: dev
#push:
# branches: [master, dev, test]
#pull_request:
Expand All @@ -26,7 +47,7 @@
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Setup Node.js
uses: actions/setup-node@49933ea5f5257e8e3239177f8295fda8298b857f # v4
uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v4
with:
node-version: "20"

Expand All @@ -36,5 +57,48 @@
- name: Install Playwright Browsers
run: npx playwright install --with-deps

- name: 🚀 Run Cucumber Smoke Tests
run: npx cucumber-js --tags @smokeTest
Comment on lines -39 to -40

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do the playwright tests were removed? Do they not work currently?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just removed for test purposes, since these aren't running cleanly atm.

# the command:
# 1) creates an openshift job with generated name to avoid name conflict, substituting the variables in the template.
# 2) greps the generated name from the previous step.
# 3) waits for the job to complete using the generated name.
database-clean-1:
name: clean database of test user GUID
needs: [smoke-test]
runs-on: ubuntu-22.04
steps:
- name: Checkout Source Code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Login to OpenShift
uses: redhat-actions/oc-login@5eb45e848b168b6bf6b8fe7f1561003c12e3c99d # v1.3
with:
openshift_server_url: ${{ env.OPENSHIFT_SERVER }}
openshift_token: ${{ env.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.TARGET_NAMESPACE }}
- name: call scripts to clean database
shell: bash
run: |
JOB_NAME=$(oc process -f ./openshift/4.0/templates/jobs/db-clean-guid.yaml -p DB_SECRET_NAME=${{ env.TARGET_DB_SECRET_NAME }} -p GIT_BRANCH=${{ env.TARGET_GIT_BRANCH }} -p SERVER_NAME=${{ env.TARGET_SERVER_NAME }} -p DB_NAME=${{ env.TARGET_DB_NAME }} -p NAMESPACE=${{ env.TARGET_NAMESPACE }} -p TEST_USER_GUID=${{ env.Users__0__Guid }} | oc create -f - | grep -oP "(?<=job\.batch/)[^\s]*")
oc wait --for=condition=complete job/$JOB_NAME --timeout=300s
oc get pods -o custom-columns=POD:.metadata.name --no-headers | grep -Eo $JOB_NAME-[^\s].* | (read POD_NAME; oc logs $POD_NAME)

database-clean-2:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +68 to +88
name: clean database of test user GUID
needs: [smoke-test]
runs-on: ubuntu-22.04
steps:
- name: Checkout Source Code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Login to OpenShift
uses: redhat-actions/oc-login@5eb45e848b168b6bf6b8fe7f1561003c12e3c99d # v1.3
with:
openshift_server_url: ${{ env.OPENSHIFT_SERVER }}
openshift_token: ${{ env.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.TARGET_NAMESPACE }}
- name: call scripts to clean database
shell: bash
run: |
JOB_NAME=$(oc process -f ./openshift/4.0/templates/jobs/db-clean-guid.yaml -p DB_SECRET_NAME=${{ env.TARGET_DB_SECRET_NAME }} -p GIT_BRANCH=${{ env.TARGET_GIT_BRANCH }} -p SERVER_NAME=${{ env.TARGET_SERVER_NAME }} -p DB_NAME=${{ env.TARGET_DB_NAME }} -p NAMESPACE=${{ env.TARGET_NAMESPACE }} -p TEST_USER_GUID=${{ env.Users__1__Guid }} | oc create -f - | grep -oP "(?<=job\.batch/)[^\s]*")
oc wait --for=condition=complete job/$JOB_NAME --timeout=300s
oc get pods -o custom-columns=POD:.metadata.name --no-headers | grep -Eo $JOB_NAME-[^\s].* | (read POD_NAME; oc logs $POD_NAME)

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +89 to +107
77 changes: 77 additions & 0 deletions openshift/4.0/templates/jobs/db-clean-guid.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
kind: Template
apiVersion: template.openshift.io/v1
metadata:
name: db-deploy
annotations:
description: "This template deploys a job to remove all rows created by a target GUID."
tags: "database,clean"
objects:
- kind: Job
apiVersion: batch/v1
metadata:
generateName: db-clean-guid-
namespace: ${NAMESPACE}
spec:
parallelism: 1
backoffLimit: 6
selector:
template:
metadata:
name: db-clean-guid
spec:
containers:
- name: sqlcmd
image: >-
image-registry.apps.silver.devops.gov.bc.ca/3cd915-tools/sqlcmd-mssql:latest
command:
- /bin/bash
- "-c"
- >-
PATH="/opt/mssql-tools/bin:$PATH";
cd /usr/config/psp;
git fetch origin ${GIT_BRANCH};
git reset --hard origin/${GIT_BRANCH};
cd /usr/config/psp/source/database/mssql/scripts/dbscripts;
chmod 777 delete-by-create-user-guid.sh;
./delete-by-create-user-guid.sh;
env:
- name: TEST_USER_GUID
value: ${TEST_USER_GUID}
- name: SERVER_NAME
value: ${SERVER_NAME}
- name: DB_NAME
value: ${DB_NAME}
- name: DB_USER
valueFrom:
secretKeyRef:
name: ${DB_SECRET_NAME}
key: DB_USER
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: ${DB_SECRET_NAME}
key: DB_PASSWORD
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Never
parameters:
- name: TEST_USER_GUID
description: the guid of the user to delete content from the database.
required: true
- name: SERVER_NAME
description: The name of the database server
required: true
- name: DB_NAME
description: The name of the database
required: true
- name: NAMESPACE
description: the openshift namespace to run this job in.
required: true
- name: GIT_BRANCH
description: the git branch to pull the database scripts from.
required: true
- name: DB_SECRET_NAME
description: the git branch to pull the database scripts from.
required: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/****** Object: StoredProcedure [dbo].[SafeDeleteByCreateUserGuidStrict] Script Date: 4/20/2026 3:29:59 PM ******/
DROP PROCEDURE [dbo].[SafeDeleteByCreateUserGuidStrict]
GO
Original file line number Diff line number Diff line change
@@ -1,59 +1,28 @@
-- File generated on 04/07/2026 03:36:12 PM.
-- Autogenerated file. Do not manually modify.

:On Error Exit
SET XACT_ABORT ON
SET
XACT_ABORT ON
GO

PRINT ' == DB SCRIPT START ========'
PRINT ' == DB SCRIPT START ========'
GO
BEGIN TRANSACTION PRINT ' == DB TRANSACTION START ========'
GO
--Script section
PRINT '- Executing PSP_PIMS_S121_00/001_PIMS_DELETE_BY_USER_GUID.sql '
:setvar filepath "PSP_PIMS_S121_00/Alter Down/001_PIMS_DELETE_BY_USER_GUID.sql"
:r $(filepath) --End script section
PRINT ' == DB TRANSACTION FINISH ========'
GO
If XACT_STATE() = 1 BEGIN PRINT '- Success: Committing Transaction...' COMMIT TRANSACTION;

BEGIN TRANSACTION
PRINT ' == DB TRANSACTION START ========'
GO

--Script section
END
ELSE IF XACT_STATE() = -1 BEGIN PRINT '- Error: Rolling Back Transaction...' ROLLBACK TRANSACTION;

PRINT '- Executing PSP_PIMS_S120_00/Alter Down/010_PSP_PIMS_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/010_PSP_PIMS_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/020_PIMS_STATIC_VARIABLE_VERSION_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/020_PIMS_STATIC_VARIABLE_VERSION_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/057_DML_PIMS_LEASE_PROGRAM_TYPE_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/057_DML_PIMS_LEASE_PROGRAM_TYPE_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/093_DML_PIMS_ACQ_FL_TEAM_PROFILE_TYPE_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/093_DML_PIMS_ACQ_FL_TEAM_PROFILE_TYPE_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/144_DML_PIMS_DSP_FL_TEAM_PROFILE_TYPE_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/144_DML_PIMS_DSP_FL_TEAM_PROFILE_TYPE_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/164_DML_PIMS_LL_TEAM_PROFILE_TYPE_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/164_DML_PIMS_LL_TEAM_PROFILE_TYPE_Alter_Down.sql"
:r $(filepath)
PRINT '- Executing PSP_PIMS_S120_00/Alter Down/167_DML_PIMS_MANAGEMENT_FILE_PROFILE_TYPE_Alter_Down.sql '
:setvar filepath "PSP_PIMS_S120_00/Alter Down/167_DML_PIMS_MANAGEMENT_FILE_PROFILE_TYPE_Alter_Down.sql"
:r $(filepath)
END;

--End script section
ELSE IF XACT_STATE() = 0 BEGIN PRINT '- Error: No pending transactions...' ROLLBACK TRANSACTION;

PRINT ' == DB TRANSACTION FINISH ========'
GO
END;

If XACT_STATE()=1
BEGIN
PRINT '- Success: Committing Transaction...'
COMMIT TRANSACTION;
END
ELSE IF XACT_STATE()=-1
BEGIN
PRINT '- Error: Rolling Back Transaction...'
ROLLBACK TRANSACTION;
END;
ELSE IF XACT_STATE()=0
BEGIN
PRINT '- Error: No pending transactions...'
ROLLBACK TRANSACTION;
END;
GO
GO
Loading
Loading