Fix clearCaches workflow failing on forks without CACHE_EXPIRATION_HOUR variable#20258
Merged
Merged
Conversation
…UR variable fromJSON(vars.CACHE_EXPIRATION_HOUR) fails when the variable is unset (empty string is not valid JSON). Use fromJSON(vars.CACHE_EXPIRATION_HOUR || ''6'') to default to 6 hours when the variable is not configured.
6 tasks
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.
Link to issue number:
No issue filed — minor/trivial CI workflow fix.
Summary of the issue:
Since #20058 (commit 25b57b8), the
clearCachesscheduled workflow fails on every fork that does not have theCACHE_EXPIRATION_HOURrepository variable set. The workflow runs every 3 hours and consistently fails with:This is a regression: before #20058 the expression was
inputs.cache_expiration || 6, which worked fine on forks.Description of user facing changes:
None.
Description of developer facing changes:
The
clearCachesscheduled workflow now works on forks out of the box, as described inci/README.md("Builds from PRs and pushes to master/beta/rc should work out of the box for forks").Description of development approach:
#20058changed the env var expression to:When
CACHE_EXPIRATION_HOURis not set as a repository variable, GitHub Actions evaluatesvars.CACHE_EXPIRATION_HOURas an empty string.fromJSON("")throws a hard parse error rather than returning a falsy value, so the intended|| 6fallback is never reached.Fix: move the default inside
fromJSONso the empty string is handled before parsing:This preserves the existing behaviour for repos that have the variable set, and correctly falls back to 6 hours for forks that do not.
Testing strategy:
Manually triggered the fixed workflow on the
bramd/nvdafork (which does not haveCACHE_EXPIRATION_HOURset) — run 26745038474 succeeded in 4 s, compared to consistent failures on the same fork before the fix.Before the fix, scheduled run 26735057185 failed with the JSON parse error on line 15.
Known issues with pull request:
None.
Code Review Checklist:
ci/README.mdalready states this workflow works out of the box for forks)