Skip to content

ci(kanban): run add-to-project on Node 24 (v1.0.2 -> v2.0.0) - #684

Merged
LukasWodka merged 1 commit into
developfrom
ci/1816-add-to-project-node24
Aug 12, 2026
Merged

ci(kanban): run add-to-project on Node 24 (v1.0.2 -> v2.0.0)#684
LukasWodka merged 1 commit into
developfrom
ci/1816-add-to-project-node24

Conversation

@LukasWodka

@LukasWodkaLukasWodka commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

What this changes

One line in .github/workflows/add-to-kanban.yml:

- - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2+ - uses: actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd # v2.0.0

Nothing else. Part of a 17-repo sweep for tracebloc/backend#1816.

Why

v1.0.2 declares using: node20 in its action.yml. Node 20 is deprecated on
GitHub-hosted runners, so every run today prints the deprecation notice and GitHub
force-runs the action on Node 24 anyway. That forced fallback is explicitly
temporary. When it is withdrawn, all 17 repos still pinned to v1.0.2 break at the
same moment — one action, one pin, seventeen repos. v2.0.0 declares
using: node24, so it needs no fallback.

This is planned maintenance, not an outage fix

Being precise, because the report that started this looked worse than it was:

  • The trigger was a single add-to-kanban failure on a backend PR. Re-running the
    exact same job, unchanged, on the unchanged v1.0.2 pin succeeded.
    The failure
    was a transient TLS condition on that runner, not a runtime incompatibility.
  • Across the last 30 add-to-kanban runs in all 19 repos: 542 successes vs 2
    failures
    (the second being an unrelated one from April). The Node 20 is being deprecated … running with Node 24 line appears on the 542 successes too — it
    correlates with nothing.
  • So: nothing is broken right now. This closes a scheduled time-bomb before it goes
    off, and that is the whole claim being made.

Why v2.0.0 specifically, and why it is safe

  • Input-compatible.v2.0.0's action.yml declares project-url,
    github-token, labeled, label-operator. This caller passes only
    project-url and github-token. Checked against the action's own action.yml
    at the pinned SHA, not assumed.
  • Already proven in our own fleet.cli and release-train have been on this
    exact v2.0.0 pin for a while: 12/12 recent runs successful. They are not
    being changed by this sweep — the other 17 are catching up to them.
  • SHA verified, not copied on trust.gh api repos/actions/add-to-project/git/ref/tags/v2.0.0
    returns 5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd.

Blast radius if it did go wrong

add-to-kanban only adds new issues/PRs to the board. kanban-reconcile.yml
(Mondays 04:00 UTC) adds anything add-to-kanban missed, so a miss self-heals
within a week and nothing accumulates silently.

Verification run on this repo

  • python3 -c "import yaml; yaml.safe_load(open('.github/workflows/add-to-kanban.yml'))" — parses.
  • actionlint .github/workflows/add-to-kanban.ymlclean (actionlint 1.7.12, the
    version tracebloc/.github pins in CI). This repo has no workflow-lint job of its own, so actionlint was run locally rather than in CI; the quality / action-pins gate (SHA-pin grammar) is satisfied — the new ref is a full 40-hex commit SHA.
  • git diff --stat1 file changed, 1 insertion(+), 1 deletion(-). No reformatting.
  • The resulting file is byte-identical to the canonical copy in tracebloc/.github
    (git blob 603751a070de), which is what caller-drift.py compares copies on.

This PR tested itself

For pull_request events GitHub reads the workflow file from the PR's head, so
this PR's own add-to-kanban run executed the new pin, before any merge:

Download action repository 'actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd'
Run actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd
with: project-url: https://github.com/orgs/tracebloc/projects/2
github-token: ***
Creating project item

17/17 of this sweep's PRs added their card successfully on the v2.0.0 pin, and the
Node 20 is being deprecated line is absent from those logs — which is the point of
the change.

Review

Reviewer intentionally not requested yet — see tracebloc/backend#1816; this is
queued behind the current review batch.
17 simultaneous review requests would bury
the team, so the batch gets sequenced by hand.

Refs tracebloc/backend#1816

v1.0.2 declares `using: node20`. Node 20 is deprecated on GitHub-hosted
runners, so GitHub force-runs this action on Node 24 today and prints the
deprecation notice on every run -- including the 542 that succeeded. That
fallback is temporary; when it is withdrawn every repo still on v1.0.2 breaks
at once. v2.0.0 declares node24 and needs no fallback.
Not an outage fix: re-running the reported failed job unchanged on the v1.0.2
pin succeeded, so that failure was a transient TLS condition, not a runtime
incompatibility. cli and release-train have run this exact v2.0.0 pin
successfully (12/12 recent runs).
v2.0.0 is input-compatible: it declares project-url, github-token, labeled and
label-operator; this caller passes the first two.
Refs: tracebloc/backend#1816
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@LukasWodkaLukasWodka self-assigned this Aug 12, 2026
@LukasWodka
LukasWodka merged commit fb9f021 into developAug 12, 2026
14 checks passed
@LukasWodka
LukasWodka deleted the ci/1816-add-to-project-node24 branch August 12, 2026 12:25
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@LukasWodka@saadqbal