Skip to content

Bump per-repository action pins off Node 20 (checkout, setup-node, setup-dotnet, artifacts, docker) #235

Open

Description

@woksin

@einari Publish runs warn "Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24". GitHub will remove the forced Node 24 shim, so these pins will break.

Findings

  • The shared reusable workflows in this repository are already on current Node 24 majors, SHA-pinned: actions/checkout v7.0.1, actions/setup-node v7.0.0, actions/setup-dotnet v6.0.0, actions/download-artifact v8.0.2, actions/upload-artifact v7.0.x, actions/cache v6.1.0. Nothing to bump here.
  • The warnings come from per-repository workflows that still pin the old v4 SHAs: checkout 11d5960a, setup-node 49933ea5, setup-dotnet 67a3573c, download-artifact d3f86a10, upload-artifact ea165f8d. Showrunner's Publish also pins docker/build-push-action v6, docker/login-action, docker/setup-buildx-action and docker/setup-qemu-action v3 (these also warn).
  • Repositories with at least one of those v4 pins (code search, first 100 hits per pin): Chronicle, Identity, Studio, Dockerfiles, Showrunner, Ensemble, Arc.TypeScript, Arc.Kotlin, Choreography, AI, Infrastructure, Stage, Screenplay.Generation, Screenplay.CritterStack.
  • Of these, only Identity has a .github/dependabot.yml. The other 13 have none, so nothing bumps their pins automatically.

Plan

  • Decide how the 13 repositories get current pins: add Dependabot (github-actions ecosystem) or a propagated bump from this repository's bootstrap workflow.
  • Bump the pins to the same SHAs this repository uses, keeping SHA pinning. Check download-artifact v4 to v8 path semantics (artifact name/merge behaviour) per repository before bumping.
  • Bump the docker actions to their current Node 24 majors.
  • Re-run the search to confirm zero remaining v4 pins.

Status

State: In review — PR open; after merge dispatch rollout (dry_run=false); then check first Dependabot PRs for download-artifact semantics
Branch: axon-90-screenplay-618 (#237)
Scope: Dependabot github-actions distributed via bootstrap (L0 decision)
Delivered: Nothing yet.
Remaining: To be confirmed.
Follow-ups: None.

Activity

  1. self-assigned this
    on Nov 12, 2026
  2. woksin commented on Nov 12, 2026

    @woksin
    ContributorAuthor

    Dry-run of the Dependabot rollout (read-only, no writes), produced from the workflows-235-dependabot branch: 43 repositories evaluated.

    Planned change in every repository: .github/dependabot.yml with only the github-actions ecosystem, one grouped update (actions, pattern *), monthly, open-pull-requests-limit: 1.

    • Update (existing file, github-actions entry appended, original text kept): Identity, Stage.Axon
    • Already has github-actions, untouched: Prompter
    • Add (new file), 40 repositories: AuthProxy, AI, Stage, Studio, cratis.no, Infrastructure, homebrew-cratis, Samples, Chronicle, Arc, Screenplay, cli, Specifications, Scene, Arc.TypeScript, Screenplay.CritterStack, Ensemble, Cast, Choreography, Chronicle.TypeScript, Narrator, Lens, Architecture, Prologue, Screenplay.Generation, Montage, Synopsis, Chronicle.Mcp, Fundamentals, Chronicle.Kotlin, Eventmodelers-Build-Kit-CSharp, Showrunner, Workshops, Dockerfiles, cratis.direct, blog.cratis.io, DirectDocumentation, DirectPublic, Common

    Deliberately excluded: Arc.Kotlin, Fundamentals.Kotlin and Arc.Elixir (Dependabot was removed from them in the last 90 days), the Go repositories, and the private repositories acme-commerce-demo, SEO and the temporary security-advisory fork. Repositories on the bootstrap ignore list stay ignored, except Identity, Studio, Stage, Arc.TypeScript, Dockerfiles, AI, Infrastructure and Ensemble, which carry stale action pins and receive only this file.

    The rollout is a separate, manually dispatched workflow, so merging it triggers no write. Each repository's first grouped Dependabot PR does the actual bump and carries only no-release; I will check download-artifact v4 to v8 path semantics there and list any repository where it breaks. Expect up to about 40 grouped PRs shortly after the rollout.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions