Skip to content

Commit 0bec0dd

Browse files
committed
Merge remote-tracking branch 'origin' into feature/CCM-10429_templates_and_s3_files_migration
2 parents 4f9545a + 7c4b829 commit 0bec0dd

File tree

229 files changed

+5933
-3224
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

229 files changed

+5933
-3224
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: 'Node modules cache + setup'
2+
description: 'Setup Node, restore node_modules cache, and optionally run npm ci on cache miss'
3+
4+
inputs:
5+
node_version:
6+
description: 'Node.js version'
7+
required: true
8+
cache_lock_path:
9+
description: 'Path(s) to package-lock.json for cache key'
10+
required: false
11+
default: '**/package-lock.json'
12+
skip_restore:
13+
description: 'Skips restoring node_modules'
14+
required: false
15+
default: false
16+
17+
runs:
18+
using: 'composite'
19+
steps:
20+
- name: 'Use Node.js'
21+
uses: actions/setup-node@v5
22+
with:
23+
cache: 'npm'
24+
cache-dependency-path: '${{ inputs.cache_lock_path }}'
25+
node-version: '${{ inputs.node_version }}'
26+
package-manager-cache: true
27+
28+
- name: 'Restore node_modules from cache'
29+
id: node-modules-cache
30+
uses: actions/cache@v4
31+
with:
32+
path: |
33+
node_modules
34+
**/node_modules
35+
key: ${{ runner.os }}-node-${{ inputs.node_version }}-${{ hashFiles(inputs.cache_lock_path) }}
36+
restore-keys: |
37+
${{ runner.os }}-node-${{ inputs.node_version }}-
38+
lookup-only: ${{ inputs.skip_restore }}
39+
40+
- name: 'Install dependencies (cache miss)'
41+
if: steps.node-modules-cache.outputs.cache-hit != 'true'
42+
shell: bash
43+
run: |
44+
npm ci

.github/actions/test-types.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"api",
44
"event",
55
"ui-component",
6-
"ui-e2e"
6+
"ui-e2e",
7+
"ui-user-timeout"
78
]

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

Lines changed: 95 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,98 +41,163 @@ permissions:
4141
contents: read # This is required for actions/checkout
4242

4343
jobs:
44+
install-dependencies:
45+
name: "Install dependencies"
46+
runs-on: ubuntu-latest
47+
timeout-minutes: 5
48+
steps:
49+
- name: "Checkout code"
50+
uses: actions/[email protected]
51+
- name: "Restore node_modules from cache"
52+
uses: ./.github/actions/node-modules-cache
53+
with:
54+
node_version: "${{ inputs.nodejs_version }}"
55+
skip_restore: true
56+
57+
discover-workspaces:
58+
runs-on: ubuntu-latest
59+
outputs:
60+
matrix: ${{ steps.get-workspaces.outputs.matrix }}
61+
steps:
62+
- name: "Checkout code"
63+
uses: actions/[email protected]
64+
- name: "Get workspaces"
65+
id: "get-workspaces"
66+
run: |
67+
echo "matrix=$(jq -c '.workspaces' package.json)" >> "$GITHUB_OUTPUT"
68+
4469
check-generated-dependencies:
4570
name: "Check generated dependencies"
4671
runs-on: ubuntu-latest
4772
timeout-minutes: 5
73+
needs: [install-dependencies]
4874
steps:
4975
- name: "Checkout code"
5076
uses: actions/[email protected]
51-
- name: "Repo setup"
52-
run: |
53-
npm ci
77+
- name: "Restore node_modules from cache"
78+
uses: ./.github/actions/node-modules-cache
79+
with:
80+
node_version: "${{ inputs.nodejs_version }}"
5481
- name: "Generate dependencies"
5582
run: |
5683
npm run generate-dependencies --workspaces --if-present
5784
git diff --exit-code
85+
5886
test-unit:
5987
name: "Unit tests"
6088
runs-on: ubuntu-latest
6189
timeout-minutes: 5
90+
needs: [install-dependencies, discover-workspaces]
91+
strategy:
92+
fail-fast: false
93+
matrix:
94+
workspace: ${{ fromJSON(needs.discover-workspaces.outputs.matrix) }}
6295
steps:
6396
- name: "Checkout code"
6497
uses: actions/[email protected]
65-
- name: "Repo setup"
66-
run: |
67-
npm ci
98+
- name: "Restore node_modules from cache"
99+
uses: ./.github/actions/node-modules-cache
100+
with:
101+
node_version: "${{ inputs.nodejs_version }}"
68102
- name: "Generate dependencies"
69103
run: |
70104
npm run generate-dependencies --workspaces --if-present
71105
- name: "Run unit test suite"
72106
run: |
73-
make test-unit
74-
- name: "Save the result of fast test suite"
107+
WORKSPACE=${{ matrix.workspace }} make test-unit
108+
- name: Compute safe artifact names
109+
id: names
110+
shell: bash
111+
run: |
112+
echo "safe=$(echo '${{ matrix.workspace }}' | tr '/' '-_')" >> "$GITHUB_OUTPUT"
113+
- name: "Save the result of test suite"
75114
uses: actions/upload-artifact@v4
76115
with:
77-
name: unit-tests
78-
path: "**/.reports/unit"
116+
name: unit-tests-${{ steps.names.outputs.safe }}
117+
path: "${{ matrix.workspace }}/.reports/unit"
79118
include-hidden-files: true
119+
if-no-files-found: ignore
80120
if: always()
81121
- name: "Save the result of code coverage"
82122
uses: actions/upload-artifact@v4
83123
with:
84-
name: code-coverage-report
85-
path: ".reports/lcov.info"
124+
name: code-coverage-${{ steps.names.outputs.safe }}
125+
path: "${{ matrix.workspace }}/.reports/unit/coverage/lcov.info"
126+
if-no-files-found: ignore
86127
if: always()
128+
87129
test-lint:
88130
name: "Linting"
89131
runs-on: ubuntu-latest
90132
timeout-minutes: 5
133+
needs: [install-dependencies]
91134
steps:
92135
- name: "Checkout code"
93136
uses: actions/[email protected]
94-
- name: "Repo setup"
95-
run: |
96-
npm ci
137+
- name: "Restore node_modules from cache"
138+
uses: ./.github/actions/node-modules-cache
139+
with:
140+
node_version: "${{ inputs.nodejs_version }}"
97141
- name: "Generate dependencies"
98142
run: |
99143
npm run generate-dependencies --workspaces --if-present
100144
- name: "Run linting"
101145
run: |
102146
make test-lint
147+
103148
test-typecheck:
104149
name: "Typecheck"
105150
runs-on: ubuntu-latest
106151
timeout-minutes: 5
152+
needs: [install-dependencies]
107153
steps:
108154
- name: "Checkout code"
109155
uses: actions/[email protected]
110-
- name: "Repo setup"
111-
run: |
112-
npm ci
156+
- name: "Restore node_modules from cache"
157+
uses: ./.github/actions/node-modules-cache
158+
with:
159+
node_version: "${{ inputs.nodejs_version }}"
113160
- name: "Generate dependencies"
114161
run: |
115162
npm run generate-dependencies --workspaces --if-present
116163
- name: "Run typecheck"
117164
run: |
118165
make test-typecheck
119-
test-coverage:
120-
name: "Test coverage"
121-
needs: [test-unit]
166+
167+
merge-coverage:
168+
name: "Merge coverage"
122169
runs-on: ubuntu-latest
123-
timeout-minutes: 5
170+
needs: [test-unit]
124171
steps:
125-
- name: "Checkout code"
126-
uses: actions/[email protected]
127-
- name: "Run test coverage check"
128-
run: |
129-
make test-coverage
130-
- name: "Save the coverage check result"
172+
- uses: actions/checkout@v5
173+
174+
- name: Download coverage artifacts
175+
uses: actions/download-artifact@v4
176+
with:
177+
pattern: code-coverage-*
178+
merge-multiple: false
179+
path: ./_cov_parts
180+
181+
- name: Merge LCOV files
131182
run: |
132-
echo "Nothing to save"
183+
set -euo pipefail
184+
mkdir -p .reports
185+
npx --yes lcov-result-merger \
186+
"./_cov_parts/**/lcov.info" \
187+
".reports/lcov.info" \
188+
--ignore "node_modules" \
189+
--prepend-source-files \
190+
--prepend-path-fix "../../"
191+
192+
- name: Upload merged LCOV
193+
uses: actions/upload-artifact@v4
194+
with:
195+
name: code-coverage-report
196+
path: .reports/lcov.info
197+
133198
perform-static-analysis:
134199
name: "Perform static analysis"
135-
needs: [test-unit]
200+
needs: [test-unit, merge-coverage]
136201
runs-on: ubuntu-latest
137202
permissions:
138203
id-token: write

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ terraform 1.10.1
77
terraform-docs 0.19.0
88
trivy 0.61.0
99
vale 3.6.0
10-
# python 3.13.2
10+
python 3.13.2
1111

1212
# ==============================================================================
1313
# The section below is reserved for Docker image versions.

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"next-client-cookies": "^2.0.1",
1515
"nhs-notify-backend-client": "^0.0.1",
1616
"nhs-notify-web-template-management-utils": "^0.0.1",
17-
"nhsuk-frontend": "^9.3.0",
17+
"nhsuk-frontend": "^10.0.0",
1818
"nhsuk-react-components": "^5.0.0",
1919
"path": "^0.12.7",
2020
"react": "^19.0.0",
Lines changed: 6 additions & 3 deletions
Loading
Lines changed: 6 additions & 3 deletions
Loading
Lines changed: 6 additions & 3 deletions
Loading
Lines changed: 6 additions & 3 deletions
Loading
Lines changed: 6 additions & 3 deletions
Loading

0 commit comments

Comments
 (0)