Allow to disable specific external caches
This commit is contained in:
parent
bf3d4ffc18
commit
fb0c8c5285
8 changed files with 40 additions and 24 deletions
10
README.md
10
README.md
|
|
@ -87,6 +87,16 @@ Default `false`.
|
|||
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
|
||||
[2]: https://bazel.build/remote/caching#disk-cache
|
||||
[3]: https://docs-staging.bazel.build/2338/versions/main/guide.html#the-repository-cache
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ if (externalCacheConfig) {
|
|||
path: `${os.tmpdir()}/external-cache-manifest.txt`
|
||||
}
|
||||
externalCache.default = {
|
||||
enabled: true,
|
||||
files: [
|
||||
'WORKSPACE.bazel',
|
||||
'WORKSPACE'
|
||||
|
|
@ -93,6 +94,7 @@ if (externalCacheConfig) {
|
|||
|
||||
for (const name in externalCacheConfig.manifest) {
|
||||
externalCache[name] = {
|
||||
enabled: externalCacheConfig.manifest[name] != false,
|
||||
files: Array(externalCacheConfig.manifest[name]).flat()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
14
dist/main/index.js
vendored
14
dist/main/index.js
vendored
|
|
@ -84,6 +84,7 @@ if (externalCacheConfig) {
|
|||
path: `${os.tmpdir()}/external-cache-manifest.txt`
|
||||
}
|
||||
externalCache.default = {
|
||||
enabled: true,
|
||||
files: [
|
||||
'WORKSPACE.bazel',
|
||||
'WORKSPACE'
|
||||
|
|
@ -99,6 +100,7 @@ if (externalCacheConfig) {
|
|||
|
||||
for (const name in externalCacheConfig.manifest) {
|
||||
externalCache[name] = {
|
||||
enabled: externalCacheConfig.manifest[name] != false,
|
||||
files: Array(externalCacheConfig.manifest[name]).flat()
|
||||
}
|
||||
}
|
||||
|
|
@ -94467,7 +94469,7 @@ const cache = __nccwpck_require__(7799)
|
|||
const glob = __nccwpck_require__(8090)
|
||||
const config = __nccwpck_require__(5532)
|
||||
|
||||
async function run () {
|
||||
async function run() {
|
||||
try {
|
||||
await setupBazel()
|
||||
} catch (error) {
|
||||
|
|
@ -94475,7 +94477,7 @@ async function run () {
|
|||
}
|
||||
}
|
||||
|
||||
async function setupBazel () {
|
||||
async function setupBazel() {
|
||||
core.startGroup('Configure Bazel')
|
||||
console.log('Configuration:')
|
||||
console.log(JSON.stringify(config, null, 2))
|
||||
|
|
@ -94489,7 +94491,7 @@ async function setupBazel () {
|
|||
await restoreExternalCaches(config.externalCache)
|
||||
}
|
||||
|
||||
async function setupBazelrc () {
|
||||
async function setupBazelrc() {
|
||||
for (const bazelrcPath of config.paths.bazelrc) {
|
||||
fs.writeFileSync(
|
||||
bazelrcPath,
|
||||
|
|
@ -94499,7 +94501,7 @@ async function setupBazelrc () {
|
|||
}
|
||||
}
|
||||
|
||||
async function restoreExternalCaches (cacheConfig) {
|
||||
async function restoreExternalCaches(cacheConfig) {
|
||||
if (!cacheConfig.enabled) {
|
||||
return
|
||||
}
|
||||
|
|
@ -94518,7 +94520,7 @@ async function restoreExternalCaches (cacheConfig) {
|
|||
const manifest = fs.readFileSync(path, { encoding: 'utf8' })
|
||||
for (const name of manifest.split('\n').filter(s => s)) {
|
||||
await restoreCache({
|
||||
enabled: true,
|
||||
enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
|
||||
files: cacheConfig[name]?.files || cacheConfig.default.files,
|
||||
name: cacheConfig.default.name(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) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
2
dist/main/index.js.map
vendored
2
dist/main/index.js.map
vendored
File diff suppressed because one or more lines are too long
12
dist/post/index.js
vendored
12
dist/post/index.js
vendored
|
|
@ -84,6 +84,7 @@ if (externalCacheConfig) {
|
|||
path: `${os.tmpdir()}/external-cache-manifest.txt`
|
||||
}
|
||||
externalCache.default = {
|
||||
enabled: true,
|
||||
files: [
|
||||
'WORKSPACE.bazel',
|
||||
'WORKSPACE'
|
||||
|
|
@ -99,6 +100,7 @@ if (externalCacheConfig) {
|
|||
|
||||
for (const name in externalCacheConfig.manifest) {
|
||||
externalCache[name] = {
|
||||
enabled: externalCacheConfig.manifest[name] != false,
|
||||
files: Array(externalCacheConfig.manifest[name]).flat()
|
||||
}
|
||||
}
|
||||
|
|
@ -94518,18 +94520,18 @@ const glob = __nccwpck_require__(8090)
|
|||
const config = __nccwpck_require__(5532)
|
||||
const { getFolderSize } = __nccwpck_require__(4962)
|
||||
|
||||
async function run () {
|
||||
async function run() {
|
||||
await saveCaches()
|
||||
}
|
||||
|
||||
async function saveCaches () {
|
||||
async function saveCaches() {
|
||||
await saveCache(config.bazeliskCache)
|
||||
await saveCache(config.diskCache)
|
||||
await saveCache(config.repositoryCache)
|
||||
await saveExternalCaches(config.externalCache)
|
||||
}
|
||||
|
||||
async function saveExternalCaches (cacheConfig) {
|
||||
async function saveExternalCaches(cacheConfig) {
|
||||
if (!cacheConfig.enabled) {
|
||||
return
|
||||
}
|
||||
|
|
@ -94549,7 +94551,7 @@ async function saveExternalCaches (cacheConfig) {
|
|||
if (sizeMB >= cacheConfig.minSize) {
|
||||
const name = path.basename(externalPath)
|
||||
await saveCache({
|
||||
enabled: true,
|
||||
enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
|
||||
files: cacheConfig[name]?.files || cacheConfig.default.files,
|
||||
name: cacheConfig.default.name(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) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
2
dist/post/index.js.map
vendored
2
dist/post/index.js.map
vendored
File diff suppressed because one or more lines are too long
12
index.js
12
index.js
|
|
@ -5,7 +5,7 @@ const cache = require('@actions/cache')
|
|||
const glob = require('@actions/glob')
|
||||
const config = require('./config')
|
||||
|
||||
async function run () {
|
||||
async function run() {
|
||||
try {
|
||||
await setupBazel()
|
||||
} catch (error) {
|
||||
|
|
@ -13,7 +13,7 @@ async function run () {
|
|||
}
|
||||
}
|
||||
|
||||
async function setupBazel () {
|
||||
async function setupBazel() {
|
||||
core.startGroup('Configure Bazel')
|
||||
console.log('Configuration:')
|
||||
console.log(JSON.stringify(config, null, 2))
|
||||
|
|
@ -27,7 +27,7 @@ async function setupBazel () {
|
|||
await restoreExternalCaches(config.externalCache)
|
||||
}
|
||||
|
||||
async function setupBazelrc () {
|
||||
async function setupBazelrc() {
|
||||
for (const bazelrcPath of config.paths.bazelrc) {
|
||||
fs.writeFileSync(
|
||||
bazelrcPath,
|
||||
|
|
@ -37,7 +37,7 @@ async function setupBazelrc () {
|
|||
}
|
||||
}
|
||||
|
||||
async function restoreExternalCaches (cacheConfig) {
|
||||
async function restoreExternalCaches(cacheConfig) {
|
||||
if (!cacheConfig.enabled) {
|
||||
return
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ async function restoreExternalCaches (cacheConfig) {
|
|||
const manifest = fs.readFileSync(path, { encoding: 'utf8' })
|
||||
for (const name of manifest.split('\n').filter(s => s)) {
|
||||
await restoreCache({
|
||||
enabled: true,
|
||||
enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
|
||||
files: cacheConfig[name]?.files || cacheConfig.default.files,
|
||||
name: cacheConfig.default.name(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) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
10
post.js
10
post.js
|
|
@ -6,18 +6,18 @@ const glob = require('@actions/glob')
|
|||
const config = require('./config')
|
||||
const { getFolderSize } = require('./util')
|
||||
|
||||
async function run () {
|
||||
async function run() {
|
||||
await saveCaches()
|
||||
}
|
||||
|
||||
async function saveCaches () {
|
||||
async function saveCaches() {
|
||||
await saveCache(config.bazeliskCache)
|
||||
await saveCache(config.diskCache)
|
||||
await saveCache(config.repositoryCache)
|
||||
await saveExternalCaches(config.externalCache)
|
||||
}
|
||||
|
||||
async function saveExternalCaches (cacheConfig) {
|
||||
async function saveExternalCaches(cacheConfig) {
|
||||
if (!cacheConfig.enabled) {
|
||||
return
|
||||
}
|
||||
|
|
@ -37,7 +37,7 @@ async function saveExternalCaches (cacheConfig) {
|
|||
if (sizeMB >= cacheConfig.minSize) {
|
||||
const name = path.basename(externalPath)
|
||||
await saveCache({
|
||||
enabled: true,
|
||||
enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
|
||||
files: cacheConfig[name]?.files || cacheConfig.default.files,
|
||||
name: cacheConfig.default.name(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) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue