Consumer evidence
ContextualWisdomLab/quarantine-sandbox-runtime root exact 7482108c0b74f58f447722a98330f9ad44215eec, native branch-coverage job 101640016078 in run 34089522598, executed actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 under the current GitHub-hosted Node 24 runtime.
The action completed its upload, but emitted all of the following current runtime warnings:
Node.js 20 is deprecated ... action targets Node.js 20 but [is] being forced to run on Node.js 24;
[DEP0040] DeprecationWarning: The punycode module is deprecated;
[DEP0169] DeprecationWarning: url.parse() behavior is not standardized and prone to errors that have security implications.
The quarantine runtime contract requires deprecation warnings to be root-caused rather than hidden. Do not use ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true as a workaround.
Owner action
Inventory the canonical reusable workflows and action-pin policy in .github, determine the latest reviewed immutable actions/upload-artifact SHA that natively targets the supported Node runtime, update the canonical owner once, and let thin consumers inherit it. Preserve exact-SHA pinning, artifact digest/provenance behavior, retention semantics and fail-closed upload errors. Add/adjust a reusable-workflow contract test so a Node-runtime-deprecated upload-artifact pin cannot silently return.
Acceptance
- Canonical
.github workflow uses an immutable reviewed actions/upload-artifact SHA with no Node 20 compatibility warning on current hosted runners.
- Consumer exact-head run shows no
DEP0040, DEP0169, or forced-Node-24 warning from that action.
- Artifact upload still succeeds with expected digest/name and failure behavior.
- No leaf repository suppresses the warning or locally forks the central workflow.
- Release/provenance consumers receive the owner release/version bump through their normal immutable dependency path.
Consumer evidence
ContextualWisdomLab/quarantine-sandbox-runtimeroot exact7482108c0b74f58f447722a98330f9ad44215eec, native branch-coverage job101640016078in run34089522598, executedactions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02under the current GitHub-hosted Node 24 runtime.The action completed its upload, but emitted all of the following current runtime warnings:
Node.js 20 is deprecated ... action targets Node.js 20 but [is] being forced to run on Node.js 24;[DEP0040] DeprecationWarning: The punycode module is deprecated;[DEP0169] DeprecationWarning: url.parse() behavior is not standardized and prone to errors that have security implications.The quarantine runtime contract requires deprecation warnings to be root-caused rather than hidden. Do not use
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=trueas a workaround.Owner action
Inventory the canonical reusable workflows and action-pin policy in
.github, determine the latest reviewed immutableactions/upload-artifactSHA that natively targets the supported Node runtime, update the canonical owner once, and let thin consumers inherit it. Preserve exact-SHA pinning, artifact digest/provenance behavior, retention semantics and fail-closed upload errors. Add/adjust a reusable-workflow contract test so a Node-runtime-deprecated upload-artifact pin cannot silently return.Acceptance
.githubworkflow uses an immutable reviewedactions/upload-artifactSHA with no Node 20 compatibility warning on current hosted runners.DEP0040,DEP0169, or forced-Node-24 warning from that action.