Skip to content

chore: sync docs, ADR, and workflow versions with CD fixes#119

Merged
samir1498 merged 1 commit into
mainfrom
chore/sync-docs-and-cd-fixes
Jun 6, 2026
Merged

chore: sync docs, ADR, and workflow versions with CD fixes#119
samir1498 merged 1 commit into
mainfrom
chore/sync-docs-and-cd-fixes

Conversation

@samir1498

@samir1498 samir1498 commented Jun 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace commit SHA action pins with version tags across all workflows (consistency with AGENTS.md rule)
  • Bump actions/checkout to @v6 (node24 runtime) where SHAs were used
  • Document annotated tag convention for Spring Boot CD in README
  • Create ADR 002 to formalize CI/CD action version strategy
  • Create benchmark Phase 0 plan with fair scenario isolation (NestJS, Spring Boot, Go)

Changes

  • Workflow consistency: replaced commit SHAs with version tags in ci.yml, ci-backend.yml, cd.yml (Spring Boot workflows already fixed)
  • README: updated CD description to specify annotated tags, added Spring Boot project structure and Makefile commands
  • ADR: new 002-ci-cd-action-version-strategy.md documenting version tag preference, node24 migration strategy, and annotated tag requirement
  • Benchmark: PLAN.md with bias-resistant design covering NestJS (Express + Fastify), Spring Boot (JVM + Native), and Go — 7 isolated scenarios, PostgreSQL isolation rules, >=3 repeats with variance reporting, and bias audit checklist
  • CHANGELOG: whitespace formatting cleanup in frontend/CHANGELOG.md

Test plan

  • CI workflows still trigger on correct path filters
  • CD tag trigger works with annotated tags only
  • No functionality changed — action version bumps are backward-compatible
  • Benchmark plan is reproducible via the described pipeline

Summary by CodeRabbit

  • Documentation

    • Enhanced README with expanded CI/CD architecture overview, including GitHub Actions path filtering and deployment details
    • Added comprehensive benchmark planning documentation for framework performance testing across multiple implementations
    • Introduced CI/CD GitHub Actions versioning strategy architecture decision record
    • Standardized changelog formatting for consistency
  • Chores

    • Updated CI/CD GitHub Actions workflows to use current stable versions across all jobs for improved reliability

@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown

Ready to act? Review this PR in Change Stack to turn feedback into patch suggestions you can inspect and refine.

Review Change Stack

Warning

Review limit reached

@samir1498, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 54 minutes and 22 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 443d619d-339d-4e67-afd5-c4ef520890dd

📥 Commits

Reviewing files that changed from the base of the PR and between 62a8265 and 7bea75f.

📒 Files selected for processing (10)
  • .github/workflows/cd-backend-springboot.yml
  • .github/workflows/cd.yml
  • .github/workflows/ci-backend-springboot.yml
  • .github/workflows/ci-backend.yml
  • .github/workflows/ci-e2e.yml
  • .github/workflows/ci.yml
  • README.md
  • benchmark/PLAN.md
  • docs/adr/002-ci-cd-action-version-strategy.md
  • frontend/CHANGELOG.md
📝 Walkthrough

Walkthrough

This PR modernizes the project's GitHub Actions setup by upgrading to newer action versions, documenting the versioning strategy, and updating project documentation to reflect new tooling practices. The changes establish a consistent major-version pinning policy across frontend and backend CI/CD workflows while adding comprehensive benchmark planning and changelog maintenance.

Changes

GitHub Actions modernization and documentation

Layer / File(s) Summary
Actions versioning strategy policy
docs/adr/002-ci-cd-action-version-strategy.md
New ADR establishes the GitHub Actions version strategy: use semver major-version tags instead of commit SHAs, prefer Node.js 24+ compatible actions, and require annotated tags for Spring Boot CD. Documents decision context and consequences.
GitHub Actions version upgrades
.github/workflows/ci.yml, .github/workflows/ci-backend.yml, .github/workflows/ci-backend-springboot.yml, .github/workflows/ci-e2e.yml, .github/workflows/cd.yml, .github/workflows/cd-backend-springboot.yml
Upgrades actions/checkout@v6 (from v4), actions/setup-java@v5 (from v4), pnpm/action-setup@v4, actions/setup-node@v4, and docker/login-action@v4 (from v3) across all CI/CD workflows. Changes applied consistently to frontend/backend CI jobs and deployment workflows while preserving existing configuration (persist-credentials, pnpm version, Java cache, Maven commands).
Project documentation and tooling updates
README.md
Expands CI/CD section with explicit workflow descriptions (path filters, Cloudflare Pages, GHCR native Docker tagging, E2E testing), replaces ./mvnw references with Makefile-driven commands for Spring Boot dev/build/test/lint/native builds, adds Spring Boot source structure hint, and includes CI/CD workflow tables detailing job pipelines and deployment behavior.
Benchmark planning and changelog maintenance
benchmark/PLAN.md, frontend/CHANGELOG.md
Adds Phase 0 benchmark plan document defining fairness rules, scenarios, PostgreSQL isolation, metrics, and deliverables for NestJS/Spring Boot/Go comparison. Standardizes markdown structure across frontend CHANGELOG releases (v0.9.0–v0.3.0) with consistent subsection ordering.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

A bunny hops through CI/CD with glee,
Actions upgraded from old SHA SHA,
Major versions march—v6, v4, v5! 🐰
Plans for benchmarks, docs made clean,
Workflows faster than ever seen! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: synchronizing docs, ADR, and workflow versions with CD fixes, which is directly reflected in the file modifications across workflows, README, ADR, and benchmark documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/sync-docs-and-cd-fixes

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 and usage tips.

- Replace commit SHA pins with version tags in all workflow files
- Bump actions/checkout to @v6 (node24), keep blocked actions at current versions
- Add annotated tag convention to README CI/CD table
- Create ADR 002 for CI/CD action version strategy
- Create benchmark Phase 0 plan (fair scenario isolation design)
@samir1498 samir1498 force-pushed the chore/sync-docs-and-cd-fixes branch from 62a8265 to 7bea75f Compare June 6, 2026 08:27

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (3)
benchmark/PLAN.md (1)

19-19: ⚡ Quick win

Consider testing both ORM and raw query strategies.

The current rule mandates choosing either ORM or raw query builder for all stacks. While this ensures fairness within a single benchmark run, it may hide important insights. Consider adding a scenario variant that tests both strategies (ORM-based CRUD and raw query-based CRUD) to identify whether ORM overhead is significant. This would help attribute performance differences more precisely and provide actionable guidance for users choosing between ORM and raw queries.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@benchmark/PLAN.md` at line 19, Update the benchmark plan to add a scenario
variant that tests both ORM-based CRUD and raw query-based CRUD in addition to
the existing rule "Same DB access strategy across stacks: all ORM or all raw
query builder." Specifically, add a new test case description (referencing the
existing sentence "Same DB access strategy across stacks: **all ORM or all raw
query builder.** No mixing ORM in one and raw SQL in another.") that runs the
benchmark twice per stack—once using the ORM implementations and once using raw
query implementations—so results can be compared for ORM overhead and
attribution of performance differences.
.github/workflows/ci-backend.yml (1)

17-17: ⚡ Quick win

Add persist-credentials: false to all checkout steps for consistency.

All seven jobs in this workflow are missing persist-credentials: false on the checkout step, while other workflows (cd.yml, ci-backend-springboot.yml, ci-e2e.yml, ci.yml) consistently include this security setting.

🔒 Add persist-credentials to all checkout steps

Example for the first job (repeat for all 7 jobs):

       - uses: actions/checkout@v6
+        with:
+          persist-credentials: false
       - uses: pnpm/action-setup@v4

Also applies to: 35-35, 53-53, 73-73, 92-92, 111-111, 130-130

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci-backend.yml at line 17, Add the security option
persist-credentials: false to every checkout step that uses actions/checkout@v6
in this workflow (all seven jobs) so the checkout steps do not leave GitHub
token credentials in the workspace; locate each step with "uses:
actions/checkout@v6" and add the persist-credentials: false input to the step
configuration.

Source: Linters/SAST tools

.github/workflows/cd-backend-springboot.yml (1)

20-22: ⚡ Quick win

Add persist-credentials: false to checkout step for consistency.

The CD workflow for Spring Boot doesn't set persist-credentials: false, while other workflows (cd.yml, ci-backend-springboot.yml, ci-e2e.yml, ci.yml) consistently include this setting. This is a security best practice to prevent the GitHub token from persisting in the workspace.

🔒 Add persist-credentials setting
       - uses: actions/checkout@v6
+        with:
+          persist-credentials: false
       - uses: actions/setup-java@v5
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/cd-backend-springboot.yml around lines 20 - 22, The
checkout step using actions/checkout@v6 should include the security option
persist-credentials: false; update the workflow's checkout step (the
actions/checkout@v6 entry) to add a with block containing persist-credentials:
false so the GitHub token is not persisted into the workspace, matching other
workflows like cd.yml and ci-backend-springboot.yml.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@benchmark/PLAN.md`:
- Around line 131-142: Add a single blank line immediately before the "Resource
usage:" table so the Markdown parser renders the table correctly; locate the
"Resource usage:" heading in PLAN.md and insert an empty line between that
heading and the table (the pipe-delimited table starting with "| Metric | NestJS
(Express) ...") to fix the formatting.
- Around line 119-130: Add a single blank line immediately before the Markdown
table that begins with the header "| Metric | NestJS (Express) | NestJS
(Fastify) | Spring JVM | Spring Native | Go |" so the table is separated from
the preceding paragraph; update the PLAN.md content where the table header
string appears to insert one newline above it to ensure correct Markdown
rendering.
- Line 89: Update PLAN.md so the PostgreSQL CPU allocation rule is consistent:
either change the hard rule phrase "Never run PostgreSQL on the same CPU
allocation as the backend" to the softer "Prefer PostgreSQL on separate CPU
allocation if possible" or alternately change the later line "Prefer PostgreSQL
on separate CPU allocation if possible" to the strict "Never run PostgreSQL on
the same CPU allocation as the backend"; pick one policy and apply it to both
occurrences (the exact phrases shown) so the document contains a single,
unambiguous rule.

In `@docs/adr/002-ci-cd-action-version-strategy.md`:
- Around line 14-16: Update ADR 002 wording to correct the Node.js deprecation
timeline and action compatibility: replace the statement that "runners will stop
supporting Node.js 20 on June 16, 2026" with that June 16, 2026 makes Node.js 24
the default while Node.js 20 remains temporarily available via
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION and that full removal is expected in
fall 2026; update the compatibility claims about setup actions to note that
actions/setup-node@v4 supports node-version: 24 and that pnpm/action-setup@v4
supports Node.js 24 starting at v4.4.0 (mention the minimum tag/version rather
than implying they require Node.js 20); apply these wording fixes where the ADR
currently asserts the June 16 date and the action compatibility (the instances
you noted).

---

Nitpick comments:
In @.github/workflows/cd-backend-springboot.yml:
- Around line 20-22: The checkout step using actions/checkout@v6 should include
the security option persist-credentials: false; update the workflow's checkout
step (the actions/checkout@v6 entry) to add a with block containing
persist-credentials: false so the GitHub token is not persisted into the
workspace, matching other workflows like cd.yml and ci-backend-springboot.yml.

In @.github/workflows/ci-backend.yml:
- Line 17: Add the security option persist-credentials: false to every checkout
step that uses actions/checkout@v6 in this workflow (all seven jobs) so the
checkout steps do not leave GitHub token credentials in the workspace; locate
each step with "uses: actions/checkout@v6" and add the persist-credentials:
false input to the step configuration.

In `@benchmark/PLAN.md`:
- Line 19: Update the benchmark plan to add a scenario variant that tests both
ORM-based CRUD and raw query-based CRUD in addition to the existing rule "Same
DB access strategy across stacks: all ORM or all raw query builder."
Specifically, add a new test case description (referencing the existing sentence
"Same DB access strategy across stacks: **all ORM or all raw query builder.** No
mixing ORM in one and raw SQL in another.") that runs the benchmark twice per
stack—once using the ORM implementations and once using raw query
implementations—so results can be compared for ORM overhead and attribution of
performance differences.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e159cc1a-222a-4c5f-8a32-2467eba55e5b

📥 Commits

Reviewing files that changed from the base of the PR and between 9d2de3a and 62a8265.

📒 Files selected for processing (10)
  • .github/workflows/cd-backend-springboot.yml
  • .github/workflows/cd.yml
  • .github/workflows/ci-backend-springboot.yml
  • .github/workflows/ci-backend.yml
  • .github/workflows/ci-e2e.yml
  • .github/workflows/ci.yml
  • README.md
  • benchmark/PLAN.md
  • docs/adr/002-ci-cd-action-version-strategy.md
  • frontend/CHANGELOG.md

Comment thread benchmark/PLAN.md
- Same seed data (identical rows, same IDs)
- Explicit identical pool size (e.g. 10 connections)
- Capture PostgreSQL CPU/RAM, active/idle connections, locks, slow queries, query count, query latency, pool wait, transaction duration
- Prefer PostgreSQL on separate CPU allocation if possible

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Inconsistency with Hard Rules: PostgreSQL CPU allocation.

Line 21 states "Never run PostgreSQL on the same CPU allocation as the backend" (hard rule), but line 89 says "Prefer PostgreSQL on separate CPU allocation if possible" (optional). This inconsistency could lead to confusion during execution. Either enforce the hard rule consistently or relax line 21 to match line 89.

📝 Proposed fix to align the constraint
-Prefer PostgreSQL on separate CPU allocation if possible
+PostgreSQL must run on separate CPU allocation (as per Hard Rules)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Prefer PostgreSQL on separate CPU allocation if possible
- PostgreSQL must run on separate CPU allocation (as per Hard Rules)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@benchmark/PLAN.md` at line 89, Update PLAN.md so the PostgreSQL CPU
allocation rule is consistent: either change the hard rule phrase "Never run
PostgreSQL on the same CPU allocation as the backend" to the softer "Prefer
PostgreSQL on separate CPU allocation if possible" or alternately change the
later line "Prefer PostgreSQL on separate CPU allocation if possible" to the
strict "Never run PostgreSQL on the same CPU allocation as the backend"; pick
one policy and apply it to both occurrences (the exact phrases shown) so the
document contains a single, unambiguous rule.

Comment thread benchmark/PLAN.md
Comment on lines +119 to +130
Per scenario:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| avg | | | | | |
| med | | | | | |
| p90 | | | | | |
| p95 | | | | | |
| p99 | | | | | |
| max | | | | | |
| failed | | | | | |
| req/s | | | | | |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add blank line before table for proper markdown formatting.

The table at line 120 should be preceded by a blank line to comply with markdown best practices and avoid rendering issues in some markdown parsers.

📝 Proposed fix
 Per scenario:
+
 | Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Per scenario:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| avg | | | | | |
| med | | | | | |
| p90 | | | | | |
| p95 | | | | | |
| p99 | | | | | |
| max | | | | | |
| failed | | | | | |
| req/s | | | | | |
Per scenario:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| avg | | | | | |
| med | | | | | |
| p90 | | | | | |
| p95 | | | | | |
| p99 | | | | | |
| max | | | | | |
| failed | | | | | |
| req/s | | | | | |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 120-120: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@benchmark/PLAN.md` around lines 119 - 130, Add a single blank line
immediately before the Markdown table that begins with the header "| Metric |
NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |" so the
table is separated from the preceding paragraph; update the PLAN.md content
where the table header string appears to insert one newline above it to ensure
correct Markdown rendering.

Source: Linters/SAST tools

Comment thread benchmark/PLAN.md
Comment on lines +131 to +142
Resource usage:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| CPU avg | | | | | |
| CPU max | | | | | |
| RAM avg | | | | | |
| RAM max | | | | | |
| GC/event-loop delay | | | | | |
| DB query count | | | | | |
| DB latency | | | | | |
| DB pool wait | | | | | |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add blank line before table for proper markdown formatting.

The table at line 132 should be preceded by a blank line to comply with markdown best practices and avoid rendering issues in some markdown parsers.

📝 Proposed fix
 Resource usage:
+
 | Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Resource usage:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| CPU avg | | | | | |
| CPU max | | | | | |
| RAM avg | | | | | |
| RAM max | | | | | |
| GC/event-loop delay | | | | | |
| DB query count | | | | | |
| DB latency | | | | | |
| DB pool wait | | | | | |
Resource usage:
| Metric | NestJS (Express) | NestJS (Fastify) | Spring JVM | Spring Native | Go |
|--------|------------------|------------------|------------|---------------|-----|
| CPU avg | | | | | |
| CPU max | | | | | |
| RAM avg | | | | | |
| RAM max | | | | | |
| GC/event-loop delay | | | | | |
| DB query count | | | | | |
| DB latency | | | | | |
| DB pool wait | | | | | |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 132-132: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@benchmark/PLAN.md` around lines 131 - 142, Add a single blank line
immediately before the "Resource usage:" table so the Markdown parser renders
the table correctly; locate the "Resource usage:" heading in PLAN.md and insert
an empty line between that heading and the table (the pipe-delimited table
starting with "| Metric | NestJS (Express) ...") to fix the formatting.

Source: Linters/SAST tools

Comment on lines +14 to +16
Additionally, GitHub Actions runners will stop supporting the Node.js 20
runtime on **June 16, 2026**, requiring actions to target Node.js 24 or
later.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

When does GitHub Actions stop supporting Node.js 20 runtime?

💡 Result:

GitHub Actions is currently in the process of deprecating Node.js 20. Following the transition to Node.js 24 as the default runtime, Node.js 20 support will be removed in the fall of 2026 [1]. Key milestones for this transition include: - June 16, 2026: Runners will begin using Node.js 24 by default [1]. - Post-June 16, 2026: Users who require additional time can temporarily continue using Node.js 20 by setting the environment variable ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true in their workflows or on their runner machines [1]. - Fall 2026: Node.js 20 support will be fully removed, and this opt-out mechanism will no longer be available [1]. Node.js 20 itself reached its official end-of-life (EOL) in April 2026 [1]. GitHub strongly recommends that action maintainers and users update their actions to run on Node.js 24 to ensure continued compatibility and security [1].

Citations:


🌐 Web query:

Does actions/setup-node@v4 support Node.js 24 runtime?

💡 Result:

Yes—actions/setup-node@v4 can install Node.js 24. Evidence: the setup-node action’s current README documents that specifying node-version: 24 is supported (and node-version accepts major versions including “24”). [1] This is consistent with the action’s evolution that added support for Node 24 (noted as “Upgraded action from node20 to node24” in the repo history). [2] Caveat: older v4 code examples and docs snapshots may list only earlier major versions, but the action’s version selection mechanism is explicitly designed to pull requested Node versions from actions/node-versions when available. [3] Practical check: in your workflow, set node-version to 24 (example for latest major v6 shown in docs; same input exists in v4): uses: actions/setup-node@v4 with: node-version: 24

Citations:


🌐 Web query:

Does pnpm/action-setup@v4 support Node.js 24 runtime?

💡 Result:

Yes, pnpm/action-setup version 4 supports the Node.js 24 runtime, starting from version 4.4.0 [1]. While earlier iterations of the v4 series (such as v4.3.0) were primarily built on Node.js 20, they faced deprecation warnings as GitHub transitioned runners to Node.js 24 [2]. To address this, pnpm/action-setup v4.4.0 was released, which updated the action to run on Node.js 24 [1][3]. If you are using an older version of the v4 branch, it is recommended to update to at least v4.4.0 or the latest available version (v5 or higher) to ensure compatibility with the updated GitHub Actions runtime requirements [1][2].

Citations:


Fix Node.js 20 deprecation timing + action compatibility claims in ADR 002

  • The ADR’s “stop supporting Node.js 20 on June 16, 2026” wording is off: June 16 is when Node.js 24 becomes the default runtime, with Node.js 20 remaining temporarily available (via ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION) and full removal in fall 2026.
  • actions/setup-node@v4 supports node-version: 24; pnpm/action-setup@v4 supports Node.js 24 starting with v4.4.0—so don’t state/imply these still require Node.js 20 without calling out the minimum tag/version.
  • Applies to lines 14-16 and also 29-32, 45-46.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/adr/002-ci-cd-action-version-strategy.md` around lines 14 - 16, Update
ADR 002 wording to correct the Node.js deprecation timeline and action
compatibility: replace the statement that "runners will stop supporting Node.js
20 on June 16, 2026" with that June 16, 2026 makes Node.js 24 the default while
Node.js 20 remains temporarily available via
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION and that full removal is expected in
fall 2026; update the compatibility claims about setup actions to note that
actions/setup-node@v4 supports node-version: 24 and that pnpm/action-setup@v4
supports Node.js 24 starting at v4.4.0 (mention the minimum tag/version rather
than implying they require Node.js 20); apply these wording fixes where the ADR
currently asserts the June 16 date and the action compatibility (the instances
you noted).

@samir1498 samir1498 merged commit 57ed0f4 into main Jun 6, 2026
24 checks passed
@samir1498 samir1498 deleted the chore/sync-docs-and-cd-fixes branch June 6, 2026 08:30
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