Allow to disable specific external caches

This commit is contained in:
Alex Rodionov 2024-01-18 07:38:13 -08:00
parent bf3d4ffc18
commit fb0c8c5285
8 changed files with 40 additions and 24 deletions

View file

@ -87,6 +87,16 @@ Default `false`.
npm: package-lock.json npm: package-lock.json
``` ```
### Disable individual external repositories conditionally
```yaml
- uses: p0deje/setup-bazel@0.3.2
with:
external-cache: |
manifest:
ruby: ${{ matrix.os == 'windows' && 'false' || '.ruby-version' }}
```
[1]: https://github.com/bazelbuild/bazelisk [1]: https://github.com/bazelbuild/bazelisk
[2]: https://bazel.build/remote/caching#disk-cache [2]: https://bazel.build/remote/caching#disk-cache
[3]: https://docs-staging.bazel.build/2338/versions/main/guide.html#the-repository-cache [3]: https://docs-staging.bazel.build/2338/versions/main/guide.html#the-repository-cache

View file

@ -78,6 +78,7 @@ if (externalCacheConfig) {
path: `${os.tmpdir()}/external-cache-manifest.txt` path: `${os.tmpdir()}/external-cache-manifest.txt`
} }
externalCache.default = { externalCache.default = {
enabled: true,
files: [ files: [
'WORKSPACE.bazel', 'WORKSPACE.bazel',
'WORKSPACE' 'WORKSPACE'
@ -93,6 +94,7 @@ if (externalCacheConfig) {
for (const name in externalCacheConfig.manifest) { for (const name in externalCacheConfig.manifest) {
externalCache[name] = { externalCache[name] = {
enabled: externalCacheConfig.manifest[name] != false,
files: Array(externalCacheConfig.manifest[name]).flat() files: Array(externalCacheConfig.manifest[name]).flat()
} }
} }

14
dist/main/index.js vendored
View file

@ -84,6 +84,7 @@ if (externalCacheConfig) {
path: `${os.tmpdir()}/external-cache-manifest.txt` path: `${os.tmpdir()}/external-cache-manifest.txt`
} }
externalCache.default = { externalCache.default = {
enabled: true,
files: [ files: [
'WORKSPACE.bazel', 'WORKSPACE.bazel',
'WORKSPACE' 'WORKSPACE'
@ -99,6 +100,7 @@ if (externalCacheConfig) {
for (const name in externalCacheConfig.manifest) { for (const name in externalCacheConfig.manifest) {
externalCache[name] = { externalCache[name] = {
enabled: externalCacheConfig.manifest[name] != false,
files: Array(externalCacheConfig.manifest[name]).flat() files: Array(externalCacheConfig.manifest[name]).flat()
} }
} }
@ -94467,7 +94469,7 @@ const cache = __nccwpck_require__(7799)
const glob = __nccwpck_require__(8090) const glob = __nccwpck_require__(8090)
const config = __nccwpck_require__(5532) const config = __nccwpck_require__(5532)
async function run () { async function run() {
try { try {
await setupBazel() await setupBazel()
} catch (error) { } catch (error) {
@ -94475,7 +94477,7 @@ async function run () {
} }
} }
async function setupBazel () { async function setupBazel() {
core.startGroup('Configure Bazel') core.startGroup('Configure Bazel')
console.log('Configuration:') console.log('Configuration:')
console.log(JSON.stringify(config, null, 2)) console.log(JSON.stringify(config, null, 2))
@ -94489,7 +94491,7 @@ async function setupBazel () {
await restoreExternalCaches(config.externalCache) await restoreExternalCaches(config.externalCache)
} }
async function setupBazelrc () { async function setupBazelrc() {
for (const bazelrcPath of config.paths.bazelrc) { for (const bazelrcPath of config.paths.bazelrc) {
fs.writeFileSync( fs.writeFileSync(
bazelrcPath, bazelrcPath,
@ -94499,7 +94501,7 @@ async function setupBazelrc () {
} }
} }
async function restoreExternalCaches (cacheConfig) { async function restoreExternalCaches(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }
@ -94518,7 +94520,7 @@ async function restoreExternalCaches (cacheConfig) {
const manifest = fs.readFileSync(path, { encoding: 'utf8' }) const manifest = fs.readFileSync(path, { encoding: 'utf8' })
for (const name of manifest.split('\n').filter(s => s)) { for (const name of manifest.split('\n').filter(s => s)) {
await restoreCache({ await restoreCache({
enabled: true, enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
files: cacheConfig[name]?.files || cacheConfig.default.files, files: cacheConfig[name]?.files || cacheConfig.default.files,
name: cacheConfig.default.name(name), name: cacheConfig.default.name(name),
paths: cacheConfig.default.paths(name) paths: cacheConfig.default.paths(name)
@ -94527,7 +94529,7 @@ async function restoreExternalCaches (cacheConfig) {
} }
} }
async function restoreCache (cacheConfig) { async function restoreCache(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }

File diff suppressed because one or more lines are too long

12
dist/post/index.js vendored
View file

@ -84,6 +84,7 @@ if (externalCacheConfig) {
path: `${os.tmpdir()}/external-cache-manifest.txt` path: `${os.tmpdir()}/external-cache-manifest.txt`
} }
externalCache.default = { externalCache.default = {
enabled: true,
files: [ files: [
'WORKSPACE.bazel', 'WORKSPACE.bazel',
'WORKSPACE' 'WORKSPACE'
@ -99,6 +100,7 @@ if (externalCacheConfig) {
for (const name in externalCacheConfig.manifest) { for (const name in externalCacheConfig.manifest) {
externalCache[name] = { externalCache[name] = {
enabled: externalCacheConfig.manifest[name] != false,
files: Array(externalCacheConfig.manifest[name]).flat() files: Array(externalCacheConfig.manifest[name]).flat()
} }
} }
@ -94518,18 +94520,18 @@ const glob = __nccwpck_require__(8090)
const config = __nccwpck_require__(5532) const config = __nccwpck_require__(5532)
const { getFolderSize } = __nccwpck_require__(4962) const { getFolderSize } = __nccwpck_require__(4962)
async function run () { async function run() {
await saveCaches() await saveCaches()
} }
async function saveCaches () { async function saveCaches() {
await saveCache(config.bazeliskCache) await saveCache(config.bazeliskCache)
await saveCache(config.diskCache) await saveCache(config.diskCache)
await saveCache(config.repositoryCache) await saveCache(config.repositoryCache)
await saveExternalCaches(config.externalCache) await saveExternalCaches(config.externalCache)
} }
async function saveExternalCaches (cacheConfig) { async function saveExternalCaches(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }
@ -94549,7 +94551,7 @@ async function saveExternalCaches (cacheConfig) {
if (sizeMB >= cacheConfig.minSize) { if (sizeMB >= cacheConfig.minSize) {
const name = path.basename(externalPath) const name = path.basename(externalPath)
await saveCache({ await saveCache({
enabled: true, enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
files: cacheConfig[name]?.files || cacheConfig.default.files, files: cacheConfig[name]?.files || cacheConfig.default.files,
name: cacheConfig.default.name(name), name: cacheConfig.default.name(name),
paths: cacheConfig.default.paths(name) paths: cacheConfig.default.paths(name)
@ -94570,7 +94572,7 @@ async function saveExternalCaches (cacheConfig) {
} }
} }
async function saveCache (cacheConfig) { async function saveCache(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }

File diff suppressed because one or more lines are too long

View file

@ -5,7 +5,7 @@ const cache = require('@actions/cache')
const glob = require('@actions/glob') const glob = require('@actions/glob')
const config = require('./config') const config = require('./config')
async function run () { async function run() {
try { try {
await setupBazel() await setupBazel()
} catch (error) { } catch (error) {
@ -13,7 +13,7 @@ async function run () {
} }
} }
async function setupBazel () { async function setupBazel() {
core.startGroup('Configure Bazel') core.startGroup('Configure Bazel')
console.log('Configuration:') console.log('Configuration:')
console.log(JSON.stringify(config, null, 2)) console.log(JSON.stringify(config, null, 2))
@ -27,7 +27,7 @@ async function setupBazel () {
await restoreExternalCaches(config.externalCache) await restoreExternalCaches(config.externalCache)
} }
async function setupBazelrc () { async function setupBazelrc() {
for (const bazelrcPath of config.paths.bazelrc) { for (const bazelrcPath of config.paths.bazelrc) {
fs.writeFileSync( fs.writeFileSync(
bazelrcPath, bazelrcPath,
@ -37,7 +37,7 @@ async function setupBazelrc () {
} }
} }
async function restoreExternalCaches (cacheConfig) { async function restoreExternalCaches(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }
@ -56,7 +56,7 @@ async function restoreExternalCaches (cacheConfig) {
const manifest = fs.readFileSync(path, { encoding: 'utf8' }) const manifest = fs.readFileSync(path, { encoding: 'utf8' })
for (const name of manifest.split('\n').filter(s => s)) { for (const name of manifest.split('\n').filter(s => s)) {
await restoreCache({ await restoreCache({
enabled: true, enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
files: cacheConfig[name]?.files || cacheConfig.default.files, files: cacheConfig[name]?.files || cacheConfig.default.files,
name: cacheConfig.default.name(name), name: cacheConfig.default.name(name),
paths: cacheConfig.default.paths(name) paths: cacheConfig.default.paths(name)
@ -65,7 +65,7 @@ async function restoreExternalCaches (cacheConfig) {
} }
} }
async function restoreCache (cacheConfig) { async function restoreCache(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }

10
post.js
View file

@ -6,18 +6,18 @@ const glob = require('@actions/glob')
const config = require('./config') const config = require('./config')
const { getFolderSize } = require('./util') const { getFolderSize } = require('./util')
async function run () { async function run() {
await saveCaches() await saveCaches()
} }
async function saveCaches () { async function saveCaches() {
await saveCache(config.bazeliskCache) await saveCache(config.bazeliskCache)
await saveCache(config.diskCache) await saveCache(config.diskCache)
await saveCache(config.repositoryCache) await saveCache(config.repositoryCache)
await saveExternalCaches(config.externalCache) await saveExternalCaches(config.externalCache)
} }
async function saveExternalCaches (cacheConfig) { async function saveExternalCaches(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }
@ -37,7 +37,7 @@ async function saveExternalCaches (cacheConfig) {
if (sizeMB >= cacheConfig.minSize) { if (sizeMB >= cacheConfig.minSize) {
const name = path.basename(externalPath) const name = path.basename(externalPath)
await saveCache({ await saveCache({
enabled: true, enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
files: cacheConfig[name]?.files || cacheConfig.default.files, files: cacheConfig[name]?.files || cacheConfig.default.files,
name: cacheConfig.default.name(name), name: cacheConfig.default.name(name),
paths: cacheConfig.default.paths(name) paths: cacheConfig.default.paths(name)
@ -58,7 +58,7 @@ async function saveExternalCaches (cacheConfig) {
} }
} }
async function saveCache (cacheConfig) { async function saveCache(cacheConfig) {
if (!cacheConfig.enabled) { if (!cacheConfig.enabled) {
return return
} }