From beaec4e8dd19fc1c890fd21a208702dddc289b8e Mon Sep 17 00:00:00 2001 From: GCHQDeveloper581 <63102987+GCHQDeveloper581@users.noreply.github.com> Date: Sat, 18 Apr 2026 09:45:36 +0000 Subject: [PATCH 1/4] Use "npm ci" rather than "npm install" to prevent updates during CI --- .github/workflows/pull_requests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 8f04df72c9..0b1a28efa4 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -22,8 +22,7 @@ jobs: - name: Install run: | - export DETECT_CHROMEDRIVER_VERSION=true - npm install + npm ci npm run setheapsize - name: Lint From dc6a3454b1902c991bf27bedef45220a0978b73e Mon Sep 17 00:00:00 2001 From: GCHQDeveloper581 <63102987+GCHQDeveloper581@users.noreply.github.com> Date: Sat, 18 Apr 2026 09:58:31 +0000 Subject: [PATCH 2/4] Move UI tests before docker image build to reduce time-to-failure --- .github/workflows/pull_requests.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 0b1a28efa4..27761ca0e5 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -37,7 +37,14 @@ jobs: if: success() run: npx grunt prod + - name: UI Tests + if: success() + run: | + sudo apt-get install xvfb + xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui + - name: Set up Docker Buildx + if: success() uses: docker/setup-buildx-action@v3 - name: Set up QEMU @@ -49,8 +56,3 @@ jobs: uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 - - name: UI Tests - if: success() - run: | - sudo apt-get install xvfb - xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui From 44919ac76644a0372676e95ca82e06fb15d4ea37 Mon Sep 17 00:00:00 2001 From: GCHQDeveloper581 <63102987+GCHQDeveloper581@users.noreply.github.com> Date: Sat, 18 Apr 2026 10:02:15 +0000 Subject: [PATCH 3/4] Save zipped build as an artefact --- .github/workflows/pull_requests.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 27761ca0e5..efa6f6c4dd 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -37,6 +37,14 @@ jobs: if: success() run: npx grunt prod + - name: Upload Build Artefact + if: success() + uses: actions/upload-artifact@v7 + with: + name: zipped-build + path: build/prod/*.zip + retention-days: 5 + - name: UI Tests if: success() run: | From 61019594f57d849b35db9065a5a19fd41ea8104b Mon Sep 17 00:00:00 2001 From: GCHQDeveloper581 <63102987+GCHQDeveloper581@users.noreply.github.com> Date: Sat, 18 Apr 2026 10:42:30 +0000 Subject: [PATCH 4/4] Replay updates into the releases and master workflows --- .github/workflows/master.yml | 3 +-- .github/workflows/releases.yml | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 13d280f64f..62f19745bc 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -26,8 +26,7 @@ jobs: - name: Install run: | - export DETECT_CHROMEDRIVER_VERSION=true - npm install + npm ci npm run setheapsize - name: Lint diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index ef397a1667..67e01d024d 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -32,7 +32,6 @@ jobs: - name: Install run: | - export DETECT_CHROMEDRIVER_VERSION=true npm ci npm run setheapsize