Skip to content

fix(ci): unblock deploy-blueprints synth jobs#188

Merged
chrisns merged 1 commit into
mainfrom
fix/ci-blueprints-synth
Apr 21, 2026
Merged

fix(ci): unblock deploy-blueprints synth jobs#188
chrisns merged 1 commit into
mainfrom
fix/ci-blueprints-synth

Conversation

@chrisns
Copy link
Copy Markdown
Member

@chrisns chrisns commented Apr 21, 2026

Summary

The deploy-blueprints workflow on main has been failing since 2026-04-16. Three of five scenario synth jobs broken: synth-localgov-drupal, synth-localgov-ims, synth-minute. Same run referenced: https://github.com/co-cddo/ndx_try_aws_scenarios/actions/runs/24718982438.

Root causes

localgov-drupal (tsc error):

  • A dependabot bump to typescript: ~6.0.2 landed.
  • TypeScript 6 no longer auto-resolves @types/jest globals (describe, test, expect) without an explicit compilerOptions.types entry.
  • Local clean npm ci && tsc --noEmit reproduces the error; adding "types": ["jest", "node"] fixes it.

localgov-ims + minute (setup-node fail):

  • Both jobs had cache: 'npm' with cache-dependency-path: …/package-lock.json.
  • Root .gitignore globally ignores package-lock.json, so those lock files were never tracked.
  • setup-node fails with "Some specified paths were not resolved" and skips every downstream step.
  • npm ci would also have failed for the same missing-lockfile reason.
  • Aligned both with synth-simply-readable (which works): no npm cache, npm install instead of npm ci.

Changes

  • cloudformation/scenarios/localgov-drupal/cdk/tsconfig.json: add "types": ["jest", "node"]
  • .github/workflows/deploy-blueprints.yml: remove npm cache lines and switch npm ci to npm install for synth-localgov-ims and synth-minute

Test plan

  • Local clean install with typescript@6.0.2: tsc --noEmit passes (exit 0).
  • Workflow runs green on main post-merge.

Three of the five scenario synth jobs were failing on the main-branch
deploy-blueprints workflow, and had been since 2026-04-16.

- synth-localgov-drupal: TypeScript 6.0 (via a dependabot bump of the
  typescript devDep) no longer auto-resolves @types/jest for global
  describe/test/expect without an explicit compilerOptions.types entry.
  Reproduced locally after a clean npm ci. Added types: ["jest", "node"]
  to localgov-drupal/cdk/tsconfig.json. Local `tsc --noEmit` now passes.

- synth-localgov-ims + synth-minute: both jobs used setup-node with
  cache: 'npm' and a cache-dependency-path pointing at package-lock.json,
  but those lock files aren't tracked (root .gitignore ignores
  package-lock.json). setup-node failed at "Some specified paths were
  not resolved", skipping all downstream steps. `npm ci` in the next
  step would have failed for the same reason. Aligned both jobs with
  the synth-simply-readable pattern: no npm cache, and `npm install`
  instead of `npm ci`. Slightly slower cold runs; deterministic enough
  for CI synth+validate.
@chrisns chrisns added this pull request to the merge queue Apr 21, 2026
Merged via the queue into main with commit dcde0c4 Apr 21, 2026
4 checks passed
@chrisns chrisns deleted the fix/ci-blueprints-synth branch April 21, 2026 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant