Skip to content

fix(ci): honor explicit Node versions in the test matrix - #735

Merged
Jamie-BitFlight merged 6 commits into
mainfrom
fix/review-followup-node-matrix-20261011
Oct 11, 2026
Merged

Jamie-BitFlight merged 6 commits into
mainfrom
fix/review-followup-node-matrix-20261011

Conversation

@Jamie-BitFlight

@Jamie-BitFlight Jamie-BitFlight commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Why

Direct review of the CI logs for #732–#734 found that both named matrix lanes actually ran Node 24.19.0. In the lane requesting 26.x, the local setup action chose the project pin before consulting its explicit input. This silently omitted Node 26 coverage while the job remained green.

Example: #732's nominal Node 26 job records requested 26.x, selected 24.19.0, and actual node: v24.19.0. The same sequence appears in #733 and #734. Earlier job-label-based Node 26 claims have been corrected in those PR descriptions.

Changes

  • Honor a nonempty explicit version before automatic detection, passing it into Bash through the step environment.
  • Default an omitted input to empty so release and lint callers keep their existing automatic selection.
  • Preserve the installed/project/engine detection order and 24.x fallback for omitted inputs.
  • Keep the selected version connected to the composite output, NODE_VERSION, and actions/setup-node.

Own commit 95a9e68 changes only .github/actions/setup-node/action.yml.

Dependency and scope

This PR is stacked on #734, after #732 and #733, to verify the complete reviewed application on the requested runtimes. The PR targets main so the existing integrations run. Other files in the full PR diff are inherited.

The existing pull_request_target test definition checks out the PR branch and loads its local setup action, so this action-file correction can be verified before merge without changing the workflow definition.

Verification

The author and a fresh independent checker separately parsed the actual YAML and executed its extracted Bash with controlled installed/project versions. Baseline explicit 26.x requests select 24.19.0; the correction passes 26.x to setup-node. Explicit pinned versions and setup-node selectors are also preserved. Omitted/empty inputs keep the same detection output, command sequence and fallback warning. All active workflow callers remain unchanged.

The independent checker marked the finding satisfied. YAML parsing, Bash syntax and whitespace checks passed. Hosted execution is now verified at 95a9e6808c2b0ee77369f3ea54193ec2e07c64a7:

  • Unit/coverage run 38102235836 records actual Node 24.19.0 and Node 26.11.1. Each lane passed 722 tests in 25 files in both tests and coverage, plus format/lint/type checks, build and docs.
  • The Node 26 log identifies the installed executable/runtime path; Vite uses the available system Node. This conclusion is based on execution evidence.
  • Both external integrations passed the fresh package suite, exact README contract and pass-2/pass-3 convergence.
  • Lint, both CodeQL analyses, and the distinct CodeQL alert check passed.
  • The inline verification thread is resolved after independent source checks and the observed hosted runtimes.

This run verifies the complete inherited application stack on the two actual runtimes. Earlier #732–#734 logs remain recorded as Node 24.19.0 execution.

Merge order: #732 → #733 → #734 → this PR. No application, dependency, version-resolution policy, or generated-distribution change is introduced by this commit.

Preserve absent, empty, null, and multiline default distinctions in the exact README verifier. Exercise real YAML generation under both formatting settings and require corrupted default projections to fail.
Access nconf through its native default export and preserve configuration precedence. Build before native CLI and library contract tests, retain active coverage output, and run the fresh package suite before external integrations.

Capture the complete README when native import resolves so a pending write cannot pass the completion assertion by finishing during process shutdown.
Keep group ownership on the instance that opened it and close every synchronous section scope in finally. Prepare asynchronous usage descriptions before opening the rendering group, preserving concurrent preparation and repeated sections.

Apply exact-true Actions detection to existing output boundaries, remove unused group-format state, and cover native SVG failure, completion, error identity, and real caller lifecycle behavior.
Give the matrix's requested version precedence over installed or project-detected versions. Preserve automatic selection and the existing fallback for callers that omit the input, and pass explicit input through the step environment.
@Jamie-BitFlight
Jamie-BitFlight marked this pull request as ready for review October 11, 2026 01:33
@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 18 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: bitflight-devops/github-action-readme-generator/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f3d83763-d356-4a77-87cc-bc42e6f24864

📥 Commits

Reviewing files that changed from the base of the PR and between 6fd3540 and 95a9e68.


📒 Files selected for processing (25)
  • .github/actions/setup-node/action.yml
  • .github/workflows/integration-test.yml
  • __tests__/action.test.ts
  • __tests__/integration-bundled-binary.test.ts
  • __tests__/integration-readme-contract.test.ts
  • __tests__/logtask/index.test.ts
  • __tests__/logtask/lifecycle.test.ts
  • __tests__/save.test.ts
  • __tests__/update-branding.test.ts
  • package.json
  • scripts/verify-readme-contract.mjs
  • src/Action.ts
  • src/inputs.ts
  • src/logtask/README.md
  • src/logtask/index.ts
  • src/readme-editor.ts
  • src/readme-generator.ts
  • src/sections/update-badges.ts
  • src/sections/update-branding.ts
  • src/sections/update-contents.ts
  • src/sections/update-description.ts
  • src/sections/update-inputs.ts
  • src/sections/update-outputs.ts
  • src/sections/update-title.ts
  • src/sections/update-usage.ts

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Jamie-BitFlight Jamie-BitFlight left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Runtime review identified the existing setup-action coverage gap that this PR corrects. The inline record distinguishes the reproduced selector defect, independently checked correction, and hosted execution evidence still being gathered.

Comment thread .github/actions/setup-node/action.yml
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 94.05% 1012 / 1076
🔵 Statements 94.18% 1037 / 1101
🔵 Functions 96.95% 159 / 164
🔵 Branches 88.26% 564 / 639
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/Action.ts 95.91% 93.61% 100% 95.91% 224, 251
src/inputs.ts 94.28% 93.02% 100% 94.08% 371-376, 405-406, 841, 971, 1016-1021
src/readme-editor.ts 100% 97.72% 100% 100%
src/readme-generator.ts 100% 100% 100% 100%
src/logtask/index.ts 98.73% 97.01% 100% 98.73% 181
src/sections/update-badges.ts 100% 83.33% 100% 100%
src/sections/update-branding.ts 81.63% 70.37% 100% 81.63% 61, 68-76, 88, 95-97, 121-122, 178
src/sections/update-contents.ts 100% 94.44% 100% 100%
src/sections/update-description.ts 100% 50% 100% 100%
src/sections/update-inputs.ts 100% 93.75% 100% 100%
src/sections/update-outputs.ts 100% 91.66% 100% 100%
src/sections/update-title.ts 100% 75% 100% 100%
src/sections/update-usage.ts 100% 85.71% 100% 100%
Generated in workflow #1112 for commit 95a9e68 by the Vitest Coverage Report Action

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T01:36:30.780575Z 95a9e68 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Jamie-BitFlight
Jamie-BitFlight merged commit 3f03f0d into main Oct 11, 2026
11 checks passed
@Jamie-BitFlight
Jamie-BitFlight deleted the fix/review-followup-node-matrix-20261011 branch October 11, 2026 02:53
Jamie-BitFlight pushed a commit that referenced this pull request Oct 11, 2026
## [2.0.5](v2.0.4...v2.0.5) (2026-10-11)

### Bug Fixes

* add CLI-only generation error boundary ([#654](#654)) ([#725](#725)) ([6a27eaa](6a27eaa))
* **ci:** honor explicit Node versions before automatic detection ([95a9e68](95a9e68))
* **ci:** honor explicit Node versions in the test matrix ([#735](#735)) ([3f03f0d](3f03f0d))
* complete SVG writes before reporting success ([#717](#717)) ([170e499](170e499))
* consistently interpret GitHub Actions environment flag ([#670](#670)) ([#723](#723)) ([68756ad](68756ad))
* fail generation on formatting and requested save errors ([#654](#654)) ([#718](#718)) ([bb48434](bb48434))
* guard malformed runs metadata and preserve load error causes ([#720](#720)) ([c6caf7a](c6caf7a))
* load native ESM configuration and verify fresh package entry points ([5f92784](5f92784))
* load native ESM configuration and verify fresh package entry points ([#733](#733)) ([55746ed](55746ed))
* pair section log groups and honor Actions mode at output boundaries ([2d45100](2d45100))
* pair section log groups and honor Actions output mode ([#734](#734)) ([ceaa03a](ceaa03a))
* preserve empty metadata descriptions and cover reviewed errors ([3c0a181](3c0a181))
* preserve empty metadata descriptions and verify reviewed error paths ([#732](#732)) ([f8c0f4e](f8c0f4e))
* preserve original file read error as cause ([#722](#722)) ([05553e0](05553e0))
* validate consumed nested metadata descriptions ([#670](#670)) ([#729](#729)) ([330ab9a](330ab9a))
* validate README section configuration at input boundary ([#670](#670)) ([#726](#726)) ([40c9efd](40c9efd))
* verify declared defaults using their rendered projection ([beb2180](beb2180))
* verify empty metadata descriptions through the contract checker ([a5e2d31](a5e2d31))
@Jamie-BitFlight

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 2.0.5 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released This issue/pull request has been released.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant