Skip to content

Commit 8f2ddb4

Browse files
committed
CCM-15633: Add contract tests to workflow
1 parent 1d2bfb0 commit 8f2ddb4

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,42 @@ jobs:
128128
src/**/coverage.xml
129129
utils/**/coverage.xml
130130
lambdas/**/coverage.xml
131+
test-contract:
132+
name: "Contract tests"
133+
runs-on: ubuntu-latest
134+
timeout-minutes: 4
135+
permissions:
136+
contents: read
137+
packages: read
138+
steps:
139+
- name: "Checkout code"
140+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
141+
- uses: ./.github/actions/node-install
142+
with:
143+
node-version: ${{ inputs.nodejs_version }}
144+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
145+
- name: "Install dependencies"
146+
run: npm ci --ignore-scripts
147+
- name: "Cache generated dependencies"
148+
id: schema-cache
149+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
150+
with:
151+
path: |
152+
schemas/digital-letters/
153+
output/digital-letters/
154+
src/digital-letters-events/types/
155+
src/digital-letters-events/validators/
156+
src/digital-letters-events/digital_letters_events/models/
157+
src/digital-letters-events/guard-functions/
158+
key: generated-deps-${{ runner.os }}-${{ hashFiles('src/cloudevents/**', 'src/typescript-schema-generator/**', 'src/python-schema-generator/**') }}
159+
- name: "Generate dependencies"
160+
if: steps.schema-cache.outputs.cache-hit != 'true'
161+
run: |
162+
npm run generate-dependencies
163+
- name: "Run contract test suite"
164+
run: |
165+
make test-contract
166+
131167
test-lint:
132168
name: "Linting"
133169
runs-on: ubuntu-latest

scripts/config/sonar-scanner.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ sonar.coverage.exclusions=\
2020
**/setup.py, \
2121
scripts/**/*.*, \
2222
docs/**/*.*, \
23+
utils/comms-utils/**, \
2324
utils/py-mock-mesh/**, \
2425
lambdas/mesh-acknowledge/src/config.py, \
2526
lambdas/mesh-download/mesh_download/config.py, \

scripts/tests/contract.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ set -euo pipefail
44

55
cd "$(git rev-parse --show-toplevel)"
66

7+
# Ensure we have the latest schema package matching our version specifier
8+
npm update @nhsdigital/nhs-notify-event-schemas-status-published
9+
710
npm run test:contract

0 commit comments

Comments
 (0)