build: update Node.js toolchain version to 24.18.0#17742
Conversation
PR Summary by Qodobuild: bump Bazel Node.js toolchain to 24.18.0 for npm trusted publishing
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
11 rules 1. Skipped releases can fail
|
| name: Publish ${{ matrix.language }} | ||
| gpg-sign: ${{ matrix.language == 'java' }} | ||
| gem-trusted-publishing: ${{ matrix.language == 'ruby' }} | ||
| node-version: ${{ matrix.language == 'javascript' && '24' || '' }} |
There was a problem hiding this comment.
1. Skipped releases can fail 🐞 Bug ☼ Reliability
The publish matrix always includes a javascript leg and the skip decision happens inside the run script, but the new node-version value makes the reusable bazel.yml workflow run actions/setup-node before that skip check. A transient setup-node failure can therefore fail the publish job and block downstream release steps even when JavaScript publishing was intended to be skipped.
Agent Prompt
## Issue description
`release.yml` passes a non-empty `node-version` for the `javascript` matrix entry unconditionally. In the reusable workflow (`bazel.yml`), this triggers the `Setup Node` step before the `run` script gets to decide whether to skip publishing for that matrix leg, so a failure in Node setup can fail the overall `publish` job even when JavaScript publishing should be skipped.
## Issue Context
- `publish` always runs a matrix including `javascript`, and only skips inside `run` based on `needs.parse-tag.outputs.language`.
- `bazel.yml` executes `actions/setup-node` whenever `inputs.node-version != ''`, and this happens before the step that runs `${{ inputs.run }}`.
- `github-release-publish` depends on `publish`, so a failing matrix leg can block downstream release work.
## Fix
Update the `node-version` expression to only set a non-empty value when BOTH:
1) `matrix.language == 'javascript'`, and
2) the parsed tag indicates `all` or `javascript`.
For example:
```yaml
node-version: ${{ (matrix.language == 'javascript' && (needs.parse-tag.outputs.language == 'all' || needs.parse-tag.outputs.language == 'javascript')) && '24' || '' }}
```
## Fix Focus Areas
- .github/workflows/release.yml[129-156]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit b6389be |
To do npm trusted publishing for Selenium's release workflow, The current version of Node pinned in toolchain in MODULE.bazel changes from 22.22.0 to 24.18.0 to get a compatible npm version.