remove routing plan id #4
Workflow file for this run
This file contains hidden or 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
| name: 'Test stage' | ||
| 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 }}' | ||