[DEV] workflows: replace deprecated set-output and bump action versions - #304
Merged
Conversation
treee111
force-pushed
the
bugfix/workflow-deprecations
branch
from
August 26, 2026 15:26
c99f5a2 to
2b0200f
Compare
…sions
The workflow command syntax ::set-output is deprecated by GitHub. Instead of
writing to $GITHUB_OUTPUT, the whole "Set output" step is removed and
${{ github.ref_name }} is used directly. It gives the short name of the
branch or the tag and therefore works for all three release workflows -
git-release.yml is triggered by a tag, the other two by a branch.
Also bumps actions/checkout v2/v3 -> v7 and actions/setup-python v3 -> v7,
the current major versions. The old ones run on a deprecated node runtime.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
treee111
force-pushed
the
bugfix/workflow-deprecations
branch
from
August 26, 2026 18:42
2b0200f to
a56fb70
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR…
::set-outputworkflow command from all three release workflows.actions/checkoutandactions/setup-pythonoff their deprecated node runtimes.Supersedes #303, which targeted the release branch and only fixed
git-release-pre.yml.Considerations and implementations
::set-outputAll three release workflows turned
GITHUB_REFinto a step output just to use it as part of the .zip file name:::set-outputis deprecated by GitHub. It still works today — the pre-release run for4.4.0a1used it — but it is slated for removal, and when that happens${{ steps.vars.outputs.tag }}becomes empty rather than failing. The assets would silently be namedwahooMapsCreator-device_themes-.zip.The usual replacement is writing to
$GITHUB_OUTPUT, but the whole step is unnecessary:${{ github.ref_name }}already is the short name of the branch or tag. So the step is deleted and the context used directly:This matters for
git-release.ymlin particular. It is triggered by a tag, soGITHUB_REFisrefs/tags/v4.3.0— a${GITHUB_REF#refs/heads/}style fix would have been wrong there.github.ref_nameis correct for both trigger types, so all three workflows now use one idiom.copyFilesToDist.shis unchanged, and the resulting file names are identical:Action versions
git-release.yml,git-release-pre.yml,git-release-test.ymlactions/checkout@v2@v7tests.ymlactions/checkout@v3@v7tests.ymlactions/setup-python@v3@v7@v2and@v3run on node runtimes GitHub has deprecated. v7 is the current major of both actions.The majors in between were checked for anything that would affect this repository:
pull_request_target/workflow_run, ESMpushandpull_requestare usedpip-installinput, ESMtests.ymlis exercised by this PR's own pylint check.Not addressed here
docker://antonyurchenko/git-release:latestin all three release workflows is an unpinned third-party image that receivesGITHUB_TOKEN. Pinning it to a fixed version tag would be worth a separate PR.tests.ymlruns on push only fordevelop, so release branches get pylint only through pull requests.Note on
git-release-test.ymlThat workflow is triggered by a push to the
git-releasebranch. For a push event GitHub reads the workflow from the branch being pushed, so the copy that actually runs is the one ongit-release— and that copy differs from the one ondevelop:UNRELEASED: "update" ALLOW_EMPTY_CHANGELOG: true + DRAFT_RELEASE: true # only on the git-release branchThat flag is why every run of it left behind another draft release on tag
latest. Four of those had accumulated and have been deleted.The change to
git-release-test.ymlin this PR therefore has no immediate effect — it applies oncedevelopis merged intogit-release. It is included so all four workflow files stay consistent.How to test
Run pylint testscheck exercises thetests.ymlchanges.release-*branch — the pre-release is built and the asset is namedwahooMapsCreator-device_themes-release-x.y.z.zip, unchanged from before.vX.Y.Ztag — the release asset is namedwahooMapsCreator-device_themes-vX.Y.Z.zip, unchanged from before.set-outputdeprecation warning any more.Pull Request Checklist
🤖 Generated with Claude Code