Repository navigation
ci: update deprecated GitHub Actions and fix nightly build detection - #7770
Merged
Merged
Conversation
…y detection The Node 20 runtime was removed from GitHub-hosted runners on 2026-09-23, leaving every workflow run on a temporary force-to-Node-24 shim with deprecation annotations. Bump the affected actions to their current majors: checkout v4->v5, setup-java v4->v6, cache v4->v6, upload-artifact v4->v7, setup-gradle v4->v6, action-gh-release v2->v3, jacoco-report v1.7.2->v1.8.0 EnricoMi/publish-unit-test-result-action (Docker) and github/codeql-action were not Node-20-flagged and are left as-is. These rotted because .github/dependabot.yml only tracked the gradle ecosystem; add a github-actions entry so they stay current automatically. Separately, the nightly build "produced nothing" because its change detector used `git rev-list --since='24 hours ago'`, coupled to the run's wall-clock fire time. Scheduled runs fire late or get dropped, so that window silently skipped days and lost commits. Compare HEAD against the commit of the most recent v*-NIGHTLY.* tag instead, which is immune to schedule drift; keep the date-based tag-exists guard as a same-day safety net.
Record nightly success with a force-updated `nightly-last-success` tag pushed only after all four platforms finish uploading, and gate the next run on that marker instead of the dated v*-NIGHTLY.* tag. The dated tag is created before the build, so a nightly that failed mid-build was wrongly treated as "already built" and never retried; the success marker keeps failed builds retryable across delayed or dropped scheduled runs. Same-commit reruns reuse the existing dated tag (upload-artifact overwrite lets artifacts replace cleanly); a dated tag pointing at a different commit is never overwritten, so same-day changes defer to the next nightly. The marker name does not match the tag-release workflow's v*.*.* trigger. Also bump github/codeql-action v3 -> v4 and update AGENTS.md to describe the marker-based detection.
Contributor
🚧 PCGen Code Coverage
|
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.
Why
Every workflow run currently carries "Node.js 20 is deprecated … being forced to run on Node.js 24" annotations. Node 20 was removed from GitHub-hosted runners on 2026-09-23, so the affected actions are living on a temporary shim (changelog).
Separately, the nightly build "produces nothing": its change-detector used
git rev-list --since='24 hours ago', measured from the run's actual fire time. Scheduled runs fire late or get dropped (no run fired on 2026-10-28), so that window silently skipped days and lost commits — all five 2026-10-27 commits were never built.What
1. Bump Node-20 actions to current majors (across all 5 workflows):
EnricoMi/publish-unit-test-result-action(Docker) andgithub/codeql-actionwere not Node-20-flagged and are left unchanged. Usage was checked against each major's breaking changes (upload-artifact v7 direct-upload is opt-in; setup-gradle/action-gh-release inputs used are all stable).2. Track
github-actionsin Dependabot — these rotted becausedependabot.ymlonly covered thegradleecosystem. Agithub-actionsentry keeps them current automatically.3. Fix nightly change-detection — compare
HEADagainst the commit of the most recentv*-NIGHTLY.*tag instead of a wall-clock window. Immune to schedule drift/dropped runs; the date-based tag-exists guard is kept as a same-day safety net.Verification
actionlint(incl. shellcheck on the nightly script) passes with zero findings.check_changeslogic againstmastercorrectly decides BUILD (HEAD ≠ last nightly tag commit) and SKIP when they match.gradle-test.ymlon this PR exercises the bumped checkout/setup-java/setup-gradle/upload-artifact/jacoco-report actions; Node-20 annotations should be gone.