allow saving cache to be optional (#131)

This commit is contained in:
Titus Fortner 2026-01-11 10:30:32 -06:00 committed by GitHub
parent 00e306f4a9
commit be4ac32ff6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 35 additions and 0 deletions

View file

@ -83,6 +83,30 @@ Default `""`.
``` ```
</details> </details>
### `cache-save`
Whether to save caches at the end of the workflow.
Set to `false` for pull requests to allow cache restoration without saving,
which prevents PRs from polluting the cache while still benefiting from it.
Default `true`.
<details>
<summary>Examples</summary>
#### Disable cache saving on pull requests
```yaml
- uses: bazel-contrib/setup-bazel@0.16.0
with:
bazelisk-cache: true
disk-cache: ${{ github.workflow }}
repository-cache: true
cache-save: ${{ github.event_name != 'pull_request' }}
```
</details>
### `disk-cache` ### `disk-cache`
Enable [`disk_cache`][2] and store it on GitHub based on contents of `BUILD` files. Enable [`disk_cache`][2] and store it on GitHub based on contents of `BUILD` files.

View file

@ -13,6 +13,10 @@ inputs:
description: Extra contents to write to user .bazelrc description: Extra contents to write to user .bazelrc
required: false required: false
default: "" default: ""
cache-save:
description: Whether to save caches. Set to false for pull requests to allow restores but prevent saves.
required: false
default: "true"
cache-version: cache-version:
description: Version of all caches description: Version of all caches
required: false required: false

View file

@ -5,6 +5,7 @@ const core = require('@actions/core')
const github = require('@actions/github') const github = require('@actions/github')
const bazeliskVersion = core.getInput('bazelisk-version') const bazeliskVersion = core.getInput('bazelisk-version')
const cacheSave = core.getBooleanInput('cache-save')
const cacheVersion = core.getInput('cache-version') const cacheVersion = core.getInput('cache-version')
const moduleRoot = core.getInput('module-root') const moduleRoot = core.getInput('module-root')
@ -137,6 +138,7 @@ core.exportVariable('BAZELISK_GITHUB_TOKEN', token)
module.exports = { module.exports = {
baseCacheKey, baseCacheKey,
cacheSave,
bazeliskCache: { bazeliskCache: {
enabled: core.getBooleanInput('bazelisk-cache'), enabled: core.getBooleanInput('bazelisk-cache'),
files: [`${moduleRoot}/.bazelversion`], files: [`${moduleRoot}/.bazelversion`],

View file

@ -13,6 +13,11 @@ async function run() {
} }
async function saveCaches() { async function saveCaches() {
if (!config.cacheSave) {
core.info('Cache saving is disabled (cache-save: false)')
return
}
await saveCache(config.bazeliskCache) await saveCache(config.bazeliskCache)
await saveCache(config.diskCache) await saveCache(config.diskCache)
await saveCache(config.repositoryCache) await saveCache(config.repositoryCache)