ci: harden build-check (matrix, permissions, concurrency) + coverage, audit, dependabot#4
Merged
Conversation
… add coverage + npm audit + dependabot
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Strengthens the Node CI. (For reference, the Node repo already had the strongest core gate of the three cloudrift repos — it's the only one running lint + format + typecheck in CI; Go runs
vetonly, Py runs neither.) This PR closes the remaining gaps.P0 — hardening (
build-check.yml)permissions: contents: read(was unset → inherited the broad default token).concurrency:block that cancels superseded runs on the same ref (saves minutes on PR force-pushes).P1 — correctness & supply chain
enginesdeclares>=20but CI only proved 22; now both the LTS floor and current are tested.npm audit --audit-level=high --omit=devstep (prod deps only; currently 0 high/critical)..github/dependabot.yml— weekly npm + github-actions updates (config-only, no runner cost).P2 — fill half-built features
vitest.config.tsreferenced v8 coverage but@vitest/coverage-v8was never installed, so--coveragefailed. Added the dep + a one-shotCoveragestep (text summary, Node 22 leg). Current coverage: 93% statements / 88% branches.run-emulator, so it doesn't add ~1-2 min to every PR.Validation
npm run format:check: PASS (new YAML + package.json conform).npx vitest run --coverage: PASS — 536 tests, coverage summary emitted (feature was previously broken).npm audit --audit-level=high --omit=dev: 0 vulnerabilities (the 12 audit findings are all dev-only deps, which don't ship — hence--omit=dev).Notes
@types/nodepinned to 22), live-lane in CI (needs real cloud creds — keep manual), CodeQL (audit+dependabot cover most supply-chain value here), npm publish (UNLICENSED, tag-is-the-release model). Release CI is handled separately in ci: add tag-triggered GitHub Release workflow #2.emulatorjob is not exercised by this PR's checks (gated off unlabelled PRs). To smoke-test it here, add therun-emulatorlabel to this PR; otherwise it first runs on merge to main. It was not verifiable locally (needs Docker/LocalStack).