Move CI onto Node 24 actions and $GITHUB_OUTPUT - #64
Open
kapantzak wants to merge 1 commit into
Open
Conversation
The runner now forces every Node 20 action onto Node 24 and warns about it. checkout and setup-node were worse than the warning suggested - both still declared node12, four runtimes behind what they were executing on. Bump each to its current major: checkout v7, setup-node v7, cache v6 and upload-artifact v7. upload-artifact needed v6 or later; v5 is still node20. Replace the two remaining ::set-output commands, deprecated alongside them. The second one feeds BUILD_VERSION, which names the artifact the deploy job hands to the infra workflow, so it fails the deploy rather than just the build if the command is ever switched off. node-version stays at 20.x - that is the Node the plugin is built with, which is a separate decision from the runtime the actions run on.
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.
Problem
Every CI run is annotated with:
The reality is worse than the annotation. Two of those actions declare node12, not node20 — the runner has been silently force-upgrading them across four runtimes:
actions/checkoutnode12node24actions/setup-nodenode12node24actions/cachenode20node24actions/upload-artifactnode20node24upload-artifactneeded v6 or later — v5 is still node20 and would not have cleared the warning.Also fixed: deprecated
::set-outputTwo occurrences remained in this workflow, deprecated in the same era as the Node 12 actions:
Both now write to
$GITHUB_OUTPUT. The step ids and output keys are unchanged, so everysteps.*.outputs.*reference still resolves.The second one matters more than it looks:
BUILD_VERSIONnames the artifact thatinternal-deployhands toNetdata Grafana Plugin Deployinnetdata/infra. Ifset-outputis ever switched off, that breaks the deploy, not just the build.Worth noting
d3b875e("Replace set-output with ...>>$GITHUB_OUTPUT") already did this once; it appears to have been reintroduced by theb441723toolkit migration.Deliberately not changed
node-version: '20.x'— that is the Node the plugin is built with, a separate decision from the runtime the actions themselves run on. Bumping it could change build output and belongs in its own change.matrix.node-versionin the node_modules cache key — there is no matrix in this workflow, so it interpolates to empty. Pre-existing and harmless (it just makes the key${{ runner.os }}--nodemodules-…), left alone to keep this diff to one concern.Verification
This PR's own CI run exercises every bumped action on the real runner — checkout, setup-node, both caches, the build, and the artifact upload.
internal-deployis gated ongithub.event_name == 'workflow_dispatch', so no deploy is triggered by this PR.What CI here does not cover: the cross-repo artifact handoff.
netdata/infradownloads the artifact withdawidd6/action-download-artifact@v6, and only aworkflow_dispatchrun reaches it. Bumpingupload-artifactv4 → v7 should be transparent to that consumer, but it is the one interaction worth confirming with a manual dispatch after merge.Suggested post-merge check:
then confirm the run in
netdata/infradownloads the artifact and completes.