Skip to content

CI: all actions on Node.js 24; Slack notifications via slackapi - #38

Merged
vthorsteinsson merged 2 commits into
mainfrom
actions-node24
Oct 14, 2026
Merged

vthorsteinsson merged 2 commits into
mainfrom
actions-node24

Conversation

@vthorsteinsson

Copy link
Copy Markdown
Member

Clears the Node.js 20 deprecation warnings in all three workflows and the composite action.

Action From To
actions/checkout v4 v7
actions/setup-python v5 v7
actions/cache (restore/save) v4 v6
actions/upload-artifact v4 v7
actions/download-artifact v4 v8
8398a7/action-slack (archived, node20) v3 slackapi/slack-github-action v4

Breaking changes checked against our usage:

  • checkout v6: credentials go in a separate file. Our workflows never run git commands themselves.
  • checkout v7: it refuses fork PRs under pull_request_target and workflow_run. We don't use those triggers.
  • setup-python v7: the pip-install input is removed. We don't use it.
  • download-artifact v5: the path changed for downloads by ID. Ours are by name or pattern + merge-multiple.
  • download-artifact v8: digest mismatches now fail. That's fine for our own artifacts.

Slack: the three failure notifications in python-package.yml now post a one-line message through slackapi/slack-github-action@v4. It names the job, the ref, the SHA and a link to the run, and uses the existing SLACK_WEBHOOK_URL incoming webhook. They still run only on failure, so this PR's green run doesn't exercise them.

Testing:

  • The YAML parses, and actionlint 1.7.7 reports nothing.
  • This PR's run covers python-package.yml and the composite action.
  • wheels.yml and data-release.yml run only on tags. They need a dry run on this branch with test tags, which build and test but never publish: 2.0.1-test1 and data-5.0.1-test1.

🤖 Generated with Claude Code

checkout v7, setup-python v7, cache v6, upload-artifact v7 and
download-artifact v8 (all node24). None of their breaking changes applies
here: downloads are by name or pattern, not by ID; no pull_request_target
or workflow_run triggers; no pip-install input. 8398a7/action-slack is
archived and still node20, so the failure notifications now go through
slackapi/slack-github-action v4 with the same incoming webhook secret.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vthorsteinsson

Copy link
Copy Markdown
Member Author

Dry runs on eb1b4ce, with tags 2.0.1-test1 and data-5.0.1-test1 (both deleted again):

  • wheels 38473025880: the sdist, the islenska-data wheel and the wheels on all four runners pass. Publish was skipped, as a test tag should be. The dist-* artifacts hold all 20 wheels and the sdist.
  • data-release 38473026435: build and test pass, and publish was skipped.
  • Neither run has a Node.js 20 annotation.

Not exercised: the publish jobs' download-artifact@v8 with pattern + merge-multiple, and the Slack failure step. Both run only on a real release or a failure.

ubuntu-latest moves to Ubuntu 26.04 from 2026-10-19, rolled out over a
few weeks. Pin every Linux job to ubuntu-26.04 (and the aarch64 wheels to
ubuntu-26.04-arm) so the switch happens here, tested, rather than at a
random point during the migration. actions/python-versions has 3.10-3.15
builds for 26.04, and cibuildwheel builds the Linux wheels in manylinux
containers, so the host image does not change the wheels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vthorsteinsson
vthorsteinsson merged commit c2512f0 into main Oct 14, 2026
20 checks passed
@vthorsteinsson
vthorsteinsson deleted the actions-node24 branch October 14, 2026 13:31
Sign up for free to 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.

1 participant