Skip to content

Turn cache expiration time into a variable#20058

Merged
seanbudd merged 3 commits into
masterfrom
cacheExpVar
May 6, 2026
Merged

Turn cache expiration time into a variable#20058
seanbudd merged 3 commits into
masterfrom
cacheExpVar

Conversation

@seanbudd

@seanbudd seanbudd commented May 6, 2026

Copy link
Copy Markdown
Member

Link to issue number:

None

Summary of the issue:

Caches expire after 6 hours, it would be nice if we could increase that number higher, to maybe 8-12.

Description of user facing changes:

None

Description of developer facing changes:

We can tweak cache expiration via github variables

Description of development approach:

Add variable

Testing strategy:

Test workflow run for the branch: https://github.com/nvaccess/nvda/actions/runs/25411277902

Will test more thoroughly on prod, it's low danger

Known issues with pull request:

None

Comment thread .github/workflows/clearCaches.yml Outdated
@seanbudd seanbudd marked this pull request as ready for review May 6, 2026 00:43
@seanbudd seanbudd requested a review from a team as a code owner May 6, 2026 00:43
@seanbudd seanbudd requested review from SaschaCowley and Copilot May 6, 2026 00:43
@seanbudd seanbudd changed the title Turn cache experitation time into a variable Turn cache expiration time into a variable May 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes the cache expiration threshold in the “Clear caches” GitHub Actions workflow configurable via a repository variable (with an optional workflow dispatch override), instead of being effectively fixed at 6 hours.

Changes:

  • Allow CACHE_EXPIRATION_HOUR to be sourced from vars.CACHE_EXPIRATION_HOUR when no dispatch input is provided.
  • Adjust the workflow dispatch input description to be less specific about the previous default.

Comment thread .github/workflows/clearCaches.yml
Comment thread .github/workflows/clearCaches.yml
Comment thread .github/workflows/clearCaches.yml
Comment thread .github/workflows/clearCaches.yml Outdated
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
@seanbudd seanbudd merged commit 25b57b8 into master May 6, 2026
43 of 46 checks passed
@seanbudd seanbudd deleted the cacheExpVar branch May 6, 2026 04:32
@github-actions github-actions Bot added this to the 2026.2 milestone May 6, 2026
seanbudd pushed a commit that referenced this pull request Jun 2, 2026
…UR variable (#20258)

No issue filed — minor/trivial CI workflow fix.
Summary of the issue:

Since #20058 (commit 25b57b8), the clearCaches scheduled workflow fails on every fork that does not have the CACHE_EXPIRATION_HOUR repository variable set. The workflow runs every 3 hours and consistently fails with:

    Error reading JToken from JsonReader. Path '', line 0, position 0.

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 clearCaches scheduled workflow now works on forks out of the box, as described in ci/README.md ("Builds from PRs and pushes to master/beta/rc should work out of the box for forks").
Description of development approach:

#20058 changed the env var expression to:

CACHE_EXPIRATION_HOUR: ${{ inputs.cache_expiration || fromJSON(vars.CACHE_EXPIRATION_HOUR) || 6 }}

When CACHE_EXPIRATION_HOUR is not set as a repository variable, GitHub Actions evaluates vars.CACHE_EXPIRATION_HOUR as an empty string. fromJSON("") throws a hard parse error rather than returning a falsy value, so the intended || 6 fallback is never reached.

Fix: move the default inside fromJSON so the empty string is handled before parsing:

CACHE_EXPIRATION_HOUR: ${{ inputs.cache_expiration || fromJSON(vars.CACHE_EXPIRATION_HOUR || '6') }}

This preserves the existing behaviour for repos that have the variable set, and correctly falls back to 6 hours for forks that do not.
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.

3 participants