-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
314 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
name: Seed Database with E2E Test Data | ||
run-name: Seed ${{ inputs.environment }} Database with E2E Test Data (${{ inputs.action }}) | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
environment: | ||
description: The environment target to seed test data in | ||
default: 'Development' | ||
type: choice | ||
options: | ||
- 'Development' | ||
- 'Test' | ||
- 'Test2' | ||
- 'Pre-production' | ||
action: | ||
description: Whether to run the setup or teardown script | ||
default: 'Teardown' | ||
type: choice | ||
options: | ||
- 'Setup' | ||
- 'Teardown' | ||
workflow_call: | ||
inputs: | ||
environment: | ||
required: true | ||
type: string | ||
action: | ||
required: true | ||
type: string | ||
|
||
permissions: | ||
id-token: write | ||
contents: read | ||
|
||
jobs: | ||
run-seed-script: | ||
name: Run ${{ inputs.action }} Script | ||
runs-on: ubuntu-24.04 | ||
environment: ${{ inputs.environment }} | ||
defaults: | ||
run: | ||
working-directory: "test/e2e-seed-data-framework" | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.ref }} | ||
|
||
- name: Install NodeJS | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "lts/Jod" # 22 LTS | ||
|
||
- name: Install NPM Packages | ||
shell: bash | ||
run: npm i | ||
|
||
- name: Get Workflow Runner IP | ||
id: runner-ip | ||
uses: ./.github/actions/get-runner-ip-address | ||
|
||
- name: Azure CLI Login | ||
uses: azure/login@v2 | ||
with: | ||
client-id: ${{ secrets.AZURE_CLIENT_ID }} | ||
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | ||
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | ||
|
||
- name: Add Azure Firewall Rule | ||
uses: ./.github/actions/azure-firewall-ip | ||
with: | ||
ip_address: ${{ steps.runner-ip.outputs.ip_address }} | ||
action: "Add" | ||
az_resource_group: ${{ vars.AZURE_RESOURCE_PREFIX }}-familyhubs | ||
az_sql_server_name: ${{ vars.AZURE_RESOURCE_PREFIX }}-as-fh-sql-server | ||
az_firewall_rule_name: E2E-SEED-SCRIPT | ||
|
||
- name: Create Environment Variables | ||
shell: bash | ||
run: | | ||
cat <<'EOF' > .env | ||
IDS_START_FROM=1000000 | ||
CONNECTION_STRING_SERVICEDIRECTORY='${{ secrets.PLAYWRIGHT_CONNECTION_STRING_SERVICE_DIRECTORY_DATABASE }}' | ||
CONNECTION_STRING_REFERRAL='${{ secrets.PLAYWRIGHT_CONNECTION_STRING_REFERRAL_DATABASE }}' | ||
CONNECTION_STRING_REPORT='${{ secrets.PLAYWRIGHT_CONNECTION_STRING_REPORT_DATABASE }}' | ||
ENCRYPTION_KEY='${{ secrets.PLAYWRIGHT_REFERRAL_COLUMN_ENCRYPTION_KEY }}' | ||
INITIALISATION_VECTOR='${{ secrets.PLAYWRIGHT_REFERRAL_COLUMN_INITIALISATION_VECTOR }}' | ||
EXAMPLE_SEED=False | ||
EOF | ||
- name: Run ${{ inputs.action }} | ||
shell: bash | ||
run: | | ||
SCRIPT=$(tr '[:upper:]' '[:lower:]' <<< "${{ inputs.action }}") | ||
npm run $SCRIPT:dev | ||
- name: Remove Azure Firewall Rule | ||
if: always() | ||
uses: ./.github/actions/azure-firewall-ip | ||
with: | ||
ip_address: ${{ steps.runner-ip.outputs.ip_address }} | ||
action: "Remove" | ||
az_resource_group: ${{ vars.AZURE_RESOURCE_PREFIX }}-familyhubs | ||
az_sql_server_name: ${{ vars.AZURE_RESOURCE_PREFIX }}-as-fh-sql-server | ||
az_firewall_rule_name: E2E-SEED-SCRIPT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
name: Run E2E Test Suite | ||
run-name: Run E2E Test Suite on ${{ inputs.environment }} | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
environment: | ||
description: The environment to run the E2E tests on | ||
default: 'Development' | ||
type: choice | ||
options: | ||
- 'Development' | ||
- 'Test' | ||
- 'Test2' | ||
- 'Pre-production' | ||
workflow_call: | ||
inputs: | ||
environment: | ||
required: true | ||
type: string | ||
|
||
permissions: | ||
id-token: write | ||
contents: read | ||
|
||
jobs: | ||
pre-test-teardown: | ||
name: Pre-Test Database Teardown | ||
uses: ./.github/workflows/e2e-seed-database.yml | ||
with: | ||
environment: ${{ inputs.environment }} | ||
action: 'Teardown' | ||
secrets: inherit | ||
|
||
pre-test-setup: | ||
needs: [ pre-test-teardown ] | ||
name: Pre-Test Database Setup | ||
uses: ./.github/workflows/e2e-seed-database.yml | ||
with: | ||
environment: ${{ inputs.environment }} | ||
action: 'Setup' | ||
secrets: inherit | ||
|
||
run-test-suite: | ||
needs: [ pre-test-setup ] | ||
name: ${{ matrix.job_name }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
suite: [ find-e2e-tests, manage-e2e-tests ] | ||
include: | ||
- suite: find-e2e-tests | ||
job_name: E2E - Find UI | ||
base_url: ${{ vars.PLAYWRIGHT_FIND_BASE_URL }} | ||
- suite: manage-e2e-tests | ||
job_name: E2E - Manage UI | ||
base_url: ${{ vars.PLAYWRIGHT_MANAGE_BASE_URL }} | ||
runs-on: ubuntu-24.04 | ||
environment: ${{ inputs.environment }} | ||
defaults: | ||
run: | ||
working-directory: "test/${{ matrix.suite }}" | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.ref }} | ||
|
||
- name: Install NodeJS | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "lts/Jod" # 22 LTS | ||
|
||
- name: Install NPM Packages | ||
shell: bash | ||
run: npm i | ||
|
||
- name: Install Playwright Dependencies | ||
shell: bash | ||
run: npx playwright install-deps | ||
|
||
- name: Get Playwright Version | ||
id: playwright-version | ||
shell: bash | ||
run: | | ||
ARRAY=($(npx playwright --version)) | ||
VERSION=${ARRAY[1]} | ||
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | ||
- name: Playwright Browser Cache | ||
id: playwright-cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.cache/ms-playwright | ||
key: ${{ runner.os }}-PlayWright-${{ steps.playwright-version.outputs.VERSION }} | ||
|
||
- name: Install Playwright Browsers | ||
if: steps.playwright-cache.outputs.cache-hit != 'true' | ||
shell: bash | ||
run: npx playwright install | ||
|
||
- name: Create Environment Variables | ||
shell: bash | ||
run: | | ||
cat <<'EOF' > .env | ||
BASE_URL='${{ vars.PLAYWRIGHT_ENVIRONMENT_PREFIX }}${{ matrix.base_url }}' | ||
USER_NAME='${{ secrets.PLAYWRIGHT_USER_NAME }}' | ||
PASSWORD='${{ secrets.PLAYWRIGHT_PASSWORD }}' | ||
DFE_ADMIN_USER='${{ secrets.PLAYWRIGHT_GOVLOGIN_DFE_ADMIN_USER }}' | ||
GOV_LOGIN_PASSWORD='${{ secrets.PLAYWRIGHT_GOVLOGIN_PASSWORD }}' | ||
EOF | ||
- name: Run Playwright Test Suite | ||
shell: bash | ||
run: npx playwright test | ||
|
||
- name: Upload Report | ||
uses: actions/upload-artifact@v4 | ||
if: always() | ||
with: | ||
name: playwright-report-${{ matrix.suite }} | ||
path: "**/playwright-report/" | ||
|
||
# Intentionally doesn't run after test failure to facilitate analysis | ||
post-test-teardown: | ||
needs: [ run-test-suite ] | ||
name: Post-Test Database Teardown | ||
uses: ./.github/workflows/e2e-seed-database.yml | ||
with: | ||
environment: ${{ inputs.environment }} | ||
action: 'Teardown' | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
# .env | ||
BASE_URL=https://test2.find-support-for-your-family.education.gov.uk/ | ||
BASE_URL=https://test.find-support-for-your-family.education.gov.uk/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.