Skip to content

CI: upgrade upload-artifact pin for Node 24 runtime #2011

Description

@seonghobae

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

  1. Canonical .github workflow uses an immutable reviewed actions/upload-artifact SHA with no Node 20 compatibility warning on current hosted runners.
  2. Consumer exact-head run shows no DEP0040, DEP0169, or forced-Node-24 warning from that action.
  3. Artifact upload still succeeds with expected digest/name and failure behavior.
  4. No leaf repository suppresses the warning or locally forks the central workflow.
  5. Release/provenance consumers receive the owner release/version bump through their normal immutable dependency path.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions