Skip to content

remove routing plan id #4

remove routing plan id

remove routing plan id #4

Workflow file for this run

name: 'Test stage'

Check failure on line 1 in .github/workflows/stage-2-test.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/stage-2-test.yaml

Invalid workflow file

(Line: 167, Col: 7): A sequence was not expected
on:
workflow_call:
inputs:
build_datetime:
description: 'Build datetime, set by the CI/CD pipeline workflow'
required: true
type: string
build_timestamp:
description: 'Build timestamp, set by the CI/CD pipeline workflow'
required: true
type: string
build_epoch:
description: 'Build epoch, set by the CI/CD pipeline workflow'
required: true
type: string
nodejs_version:
description: 'Node.js version, set by the CI/CD pipeline workflow'
required: true
type: string
python_version:
description: 'Python version, set by the CI/CD pipeline workflow'
required: true
type: string
terraform_version:
description: 'Terraform version, set by the CI/CD pipeline workflow'
required: true
type: string
version:
description: 'Version of the software, set by the CI/CD pipeline workflow'
required: true
type: string
jobs:
test:
name: 'Tests'
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
frontend-changed: ${{ steps.path-changes.outputs.frontend == 'true' }}
notifications-changed: ${{ steps.path-changes.outputs.notifications == 'true' }}
services:
postgres:
image: postgres:17.4-alpine3.21
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
- name: Detect notifications code changes
uses: dorny/paths-filter@v3
id: path-changes
with:
filters: |
frontend:
- 'manage_breast_screening/assets/**'
- 'manage_breast_screening/auth/**'
- 'manage_breast_screening/clinics/**'
- 'manage_breast_screening/core/**'
- 'manage_breast_screening/config/**'
- 'manage_breast_screening/data/**'
- 'manage_breast_screening/mammograms/**'
- 'manage_breast_screening/nonprod/**'
- 'manage_breast_screening/participants/**'
- 'manage_breast_screening/static/**'
notifications:
- 'manage_breast_screening/notifications/**'
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '${{inputs.python_version}}'
cache: poetry
cache-dependency-path: ./poetry.lock
- name: Install dependencies
run: make dependencies
- name: 'Run unit test suite'
run: make test-unit
env:
DATABASE_NAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_USER: postgres
DATABASE_HOST: localhost
notifications-integration-test:
needs: test
if: needs.test.outputs.notifications-changed == 'true'
name: 'Notifications Integration Tests'
runs-on: ubuntu-latest
timeout-minutes: 5
services:
postgres:
image: postgres:17.4-alpine3.21
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '${{inputs.python_version}}'
cache: poetry
cache-dependency-path: ./poetry.lock
- name: Install dependencies
run: make dependencies
- name: 'Run notifications integration test suite'
run: make test-integration
env:
DATABASE_NAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_USER: postgres
DATABASE_HOST: localhost
notifications-end-to-end-test:
needs: test
if: needs.test.outputs.notifications-changed == 'true'
name: 'Notifications End to End Tests'
runs-on: ubuntu-latest
timeout-minutes: 5
services:
postgres:
image: postgres:17.4-alpine3.21
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '${{inputs.python_version}}'
cache: poetry
cache-dependency-path: ./poetry.lock
- name: Install dependencies
run: make dependencies
- name: 'Run notifications end to end test suite'
run: make test-end-to-end
env:
DATABASE_NAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_USER: postgres
DATABASE_HOST: localhost
frontend-integration-test:
needs: test
if: needs.test.outputs.frontend-changed == 'true'
name: 'Frontend Tests'
runs-on: ubuntu-latest
timeout-minutes: 5
services:
postgres:
image: postgres:17.4-alpine3.21
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '${{inputs.python_version}}'
cache: poetry
cache-dependency-path: ./poetry.lock
- name: Install dependencies
run: make dependencies
- name: Install Playwright browsers
run: poetry run playwright install chromium --with-deps
- name: 'Run Playwright system tests'
run: make test-ui
env:
DATABASE_NAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_USER: postgres
DATABASE_HOST: localhost
test-lint:
name: 'Linting'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '${{inputs.python_version}}'
cache: poetry
cache-dependency-path: ./poetry.lock
- name: Install dependencies
run: make dependencies
- name: Run linting
run: make test-lint
perform-static-analysis:
name: 'Perform static analysis'
needs: [test]
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
timeout-minutes: 5
steps:
- name: 'Checkout code'
uses: actions/checkout@v5
with:
fetch-depth: 0 # Full history is needed to improving relevancy of reporting
- name: 'Perform static analysis'
uses: ./.github/actions/perform-static-analysis
with:
sonar_organisation_key: '${{ vars.SONAR_ORGANISATION_KEY }}'
sonar_project_key: '${{ vars.SONAR_PROJECT_KEY }}'
sonar_token: '${{ secrets.SONAR_TOKEN }}'