Compare commits
1 commit
main
...
p0deje/add
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f6bfb33d0 |
14 changed files with 105638 additions and 103425 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
|
@ -19,7 +19,7 @@ jobs:
|
||||||
- ubuntu
|
- ubuntu
|
||||||
- windows
|
- windows
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
- if: failure() && runner.debug == '1'
|
- if: failure() && runner.debug == '1'
|
||||||
uses: mxschmitt/action-tmate@v3
|
uses: mxschmitt/action-tmate@v3
|
||||||
|
|
|
||||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -15,8 +15,8 @@ jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v6
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
cache: npm
|
cache: npm
|
||||||
node-version-file: package.json
|
node-version-file: package.json
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
nodejs 24.14.0
|
nodejs 22.14.0
|
||||||
|
|
|
||||||
93
README.md
93
README.md
|
|
@ -6,7 +6,7 @@ and provides an advanced fine-grained caching to improve workflows performance.
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
# Avoid downloading Bazel every time.
|
# Avoid downloading Bazel every time.
|
||||||
bazelisk-cache: true
|
bazelisk-cache: true
|
||||||
|
|
@ -39,7 +39,7 @@ Default `""`.
|
||||||
#### Install Bazelisk 1.x
|
#### Install Bazelisk 1.x
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
bazelisk-version: 1.x
|
bazelisk-version: 1.x
|
||||||
```
|
```
|
||||||
|
|
@ -47,7 +47,7 @@ Default `""`.
|
||||||
#### Install exact Bazelisk version
|
#### Install exact Bazelisk version
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
bazelisk-version: 1.19.0
|
bazelisk-version: 1.19.0
|
||||||
```
|
```
|
||||||
|
|
@ -67,7 +67,7 @@ Default `""`.
|
||||||
#### Enable Bzlmod
|
#### Enable Bzlmod
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
bazelrc: common --enable_bzlmod
|
bazelrc: common --enable_bzlmod
|
||||||
```
|
```
|
||||||
|
|
@ -75,7 +75,7 @@ Default `""`.
|
||||||
#### Add colors and timestamps
|
#### Add colors and timestamps
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
bazelrc: |
|
bazelrc: |
|
||||||
build --color=yes
|
build --color=yes
|
||||||
|
|
@ -83,30 +83,6 @@ 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.18.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.
|
||||||
|
|
@ -121,7 +97,7 @@ Default `false`.
|
||||||
#### Share a single disk cache
|
#### Share a single disk cache
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
disk-cache: true
|
disk-cache: true
|
||||||
```
|
```
|
||||||
|
|
@ -129,9 +105,30 @@ Default `false`.
|
||||||
#### Separate disk caches between workflows
|
#### Separate disk caches between workflows
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
disk-cache: ${{ github.workflow }}
|
disk-cache: ${{ github.workflow }}}
|
||||||
|
```
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### `disk-cache-files`
|
||||||
|
|
||||||
|
Specify custom disk cache files.
|
||||||
|
|
||||||
|
Default `""`.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Examples</summary>
|
||||||
|
|
||||||
|
#### Override disk cache files
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
|
with:
|
||||||
|
disk-cache-files: |
|
||||||
|
**/BUILD.bazel
|
||||||
|
**/BUILD
|
||||||
|
custom/path/BUILD
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
@ -153,7 +150,7 @@ Default `false`.
|
||||||
#### Enable external repositories caches
|
#### Enable external repositories caches
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
external-cache: true
|
external-cache: true
|
||||||
```
|
```
|
||||||
|
|
@ -161,7 +158,7 @@ Default `false`.
|
||||||
#### Cache NPM repositories based on `package-lock.json` contents
|
#### Cache NPM repositories based on `package-lock.json` contents
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
external-cache: |
|
external-cache: |
|
||||||
manifest:
|
manifest:
|
||||||
|
|
@ -171,7 +168,7 @@ Default `false`.
|
||||||
#### Do not cache Ruby on Windows
|
#### Do not cache Ruby on Windows
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
external-cache: |
|
external-cache: |
|
||||||
manifest:
|
manifest:
|
||||||
|
|
@ -191,20 +188,12 @@ Default `""`.
|
||||||
#### Authenticate via key
|
#### Authenticate via key
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
google-credentials: ${{ secrets.GOOGLE_CLOUD_KEY }}
|
google-credentials: ${{ secrets.GOOGLE_CLOUD_KEY }}
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### `module-root`
|
|
||||||
|
|
||||||
Bazel module root directory, where `MODULE.bazel` and `WORKSPACE` is found.
|
|
||||||
|
|
||||||
Change this value to the module root if it's not the repository root.
|
|
||||||
|
|
||||||
Default `"."`.
|
|
||||||
|
|
||||||
### `output-base`
|
### `output-base`
|
||||||
|
|
||||||
Change Bazel output base directory.
|
Change Bazel output base directory.
|
||||||
|
|
@ -222,7 +211,7 @@ Default is one of the following:
|
||||||
#### Use `C` drive letter
|
#### Use `C` drive letter
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
output-base: C:/_bazel
|
output-base: C:/_bazel
|
||||||
```
|
```
|
||||||
|
|
@ -242,7 +231,7 @@ Default `false`.
|
||||||
#### Store a single repository cache
|
#### Store a single repository cache
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
repository-cache: true
|
repository-cache: true
|
||||||
```
|
```
|
||||||
|
|
@ -250,19 +239,10 @@ Default `false`.
|
||||||
#### Store a repository cache from a custom location
|
#### Store a repository cache from a custom location
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
- uses: bazel-contrib/setup-bazel@0.13.0
|
||||||
with:
|
with:
|
||||||
repository-cache: examples/gem/WORKSPACE
|
repository-cache: examples/gem/WORKSPACE
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Store a repository cache from a list of custom locations
|
|
||||||
```yaml
|
|
||||||
- uses: bazel-contrib/setup-bazel@0.18.0
|
|
||||||
with:
|
|
||||||
repository-cache: |
|
|
||||||
- MODULE.bazel
|
|
||||||
- requirements_locked.txt
|
|
||||||
```
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Migrating from [`bazelbuild/setup-bazelisk`][6]
|
## Migrating from [`bazelbuild/setup-bazelisk`][6]
|
||||||
|
|
@ -276,7 +256,6 @@ However, if you used a `bazel-version` input before, you will need to remove it
|
||||||
To build action, run the following command:
|
To build action, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ npm install
|
|
||||||
$ npm run build
|
$ npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
13
action.yml
13
action.yml
|
|
@ -13,10 +13,6 @@ 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
|
||||||
|
|
@ -25,6 +21,10 @@ inputs:
|
||||||
description: Cache actions outputs based on BUILD
|
description: Cache actions outputs based on BUILD
|
||||||
required: false
|
required: false
|
||||||
default: "false"
|
default: "false"
|
||||||
|
disk-cache-files:
|
||||||
|
description: Custom disk cache files
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
external-cache:
|
external-cache:
|
||||||
description: Cache external 10MB+ repositories based on MODULE.bazel/WORKSPACE
|
description: Cache external 10MB+ repositories based on MODULE.bazel/WORKSPACE
|
||||||
required: false
|
required: false
|
||||||
|
|
@ -33,10 +33,6 @@ inputs:
|
||||||
description: Google Cloud account key for remote cache
|
description: Google Cloud account key for remote cache
|
||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
module-root:
|
|
||||||
description: Bazel module root directory. Default is `.`
|
|
||||||
required: false
|
|
||||||
default: "."
|
|
||||||
output-base:
|
output-base:
|
||||||
description: Bazel output base directory. Default is $HOME/.cache/bazel (POSIX) or D:/_bazel (Windows)
|
description: Bazel output base directory. Default is $HOME/.cache/bazel (POSIX) or D:/_bazel (Windows)
|
||||||
required: false
|
required: false
|
||||||
|
|
@ -54,4 +50,3 @@ runs:
|
||||||
using: node20
|
using: node20
|
||||||
main: dist/main/index.js
|
main: dist/main/index.js
|
||||||
post: dist/post/index.js
|
post: dist/post/index.js
|
||||||
post-if: "!cancelled()"
|
|
||||||
|
|
|
||||||
63
config.js
63
config.js
|
|
@ -5,9 +5,8 @@ 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 externalCacheConfig = yaml.parse(core.getInput('external-cache'))
|
||||||
|
|
||||||
const homeDir = os.homedir()
|
const homeDir = os.homedir()
|
||||||
const arch = os.arch()
|
const arch = os.arch()
|
||||||
|
|
@ -16,12 +15,7 @@ const platform = os.platform()
|
||||||
let bazelOutputBase = core.getInput('output-base')
|
let bazelOutputBase = core.getInput('output-base')
|
||||||
if (!bazelOutputBase) {
|
if (!bazelOutputBase) {
|
||||||
if (platform === 'win32') {
|
if (platform === 'win32') {
|
||||||
// check if GITHUB_WORKSPACE starts with D:
|
bazelOutputBase = 'D:/_bazel'
|
||||||
if (process.env.GITHUB_WORKSPACE?.toLowerCase()?.startsWith('d:')) {
|
|
||||||
bazelOutputBase = 'D:/_bazel'
|
|
||||||
} else {
|
|
||||||
bazelOutputBase = `C:/_bazel`
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
bazelOutputBase = `${homeDir}/.bazel`
|
bazelOutputBase = `${homeDir}/.bazel`
|
||||||
}
|
}
|
||||||
|
|
@ -46,33 +40,39 @@ switch (platform) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
const baseCacheKey = `setup-bazel-${cacheVersion}-${platform}-${arch}`
|
const baseCacheKey = `setup-bazel-${cacheVersion}-${platform}`
|
||||||
const bazelrc = core.getMultilineInput('bazelrc')
|
const bazelrc = core.getMultilineInput('bazelrc')
|
||||||
|
|
||||||
const diskCacheConfig = core.getInput('disk-cache')
|
const diskCacheConfig = core.getInput('disk-cache')
|
||||||
const diskCacheEnabled = diskCacheConfig !== 'false'
|
const diskCacheEnabled = diskCacheConfig !== 'false'
|
||||||
let diskCacheName = 'disk'
|
let diskCacheName = 'disk'
|
||||||
if (diskCacheEnabled) {
|
if (diskCacheEnabled) {
|
||||||
// Before Bazel 6.3, providing --disk_cache to common is an error,
|
bazelrc.push(`common --disk_cache=${bazelDisk}`)
|
||||||
// with Bazel 6.3 and onwards, common accepts any legal Bazel option
|
|
||||||
// https://github.com/bazelbuild/bazel/issues/3054
|
|
||||||
bazelrc.push(`build --disk_cache=${bazelDisk}`)
|
|
||||||
if (diskCacheName !== 'true') {
|
if (diskCacheName !== 'true') {
|
||||||
diskCacheName = `${diskCacheName}-${diskCacheConfig}`
|
diskCacheName = `${diskCacheName}-${diskCacheConfig}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const repositoryCacheConfig = yaml.parse(core.getInput('repository-cache'))
|
const diskCacheFilesConfig = core.getMultilineInput('disk-cache-files')
|
||||||
const repositoryCacheEnabled = repositoryCacheConfig !== false
|
let diskCacheFiles = [
|
||||||
|
'**/BUILD.bazel',
|
||||||
|
'**/BUILD'
|
||||||
|
]
|
||||||
|
if (diskCacheFilesConfig.length > 0) {
|
||||||
|
diskCacheFiles = diskCacheFilesConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
const repositoryCacheConfig = core.getInput('repository-cache')
|
||||||
|
const repositoryCacheEnabled = repositoryCacheConfig !== 'false'
|
||||||
let repositoryCacheFiles = [
|
let repositoryCacheFiles = [
|
||||||
`${moduleRoot}/MODULE.bazel`,
|
'MODULE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bazel`,
|
'WORKSPACE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bzlmod`,
|
'WORKSPACE.bzlmod',
|
||||||
`${moduleRoot}/WORKSPACE`
|
'WORKSPACE'
|
||||||
]
|
]
|
||||||
if (repositoryCacheEnabled) {
|
if (repositoryCacheEnabled) {
|
||||||
bazelrc.push(`common --repository_cache=${bazelRepository}`)
|
bazelrc.push(`common --repository_cache=${bazelRepository}`)
|
||||||
if (repositoryCacheConfig !== true) {
|
if (repositoryCacheConfig !== 'true') {
|
||||||
repositoryCacheFiles = Array(repositoryCacheConfig).flat()
|
repositoryCacheFiles = Array(repositoryCacheConfig).flat()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -87,7 +87,6 @@ if (googleCredentials.length > 0 && !googleCredentialsSaved) {
|
||||||
core.saveState('google-credentials-path', googleCredentialsPath)
|
core.saveState('google-credentials-path', googleCredentialsPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
const externalCacheConfig = yaml.parse(core.getInput('external-cache'))
|
|
||||||
const bazelExternal = core.toPosixPath(`${bazelOutputBase}/external`)
|
const bazelExternal = core.toPosixPath(`${bazelOutputBase}/external`)
|
||||||
const externalCache = {}
|
const externalCache = {}
|
||||||
if (externalCacheConfig) {
|
if (externalCacheConfig) {
|
||||||
|
|
@ -100,10 +99,10 @@ if (externalCacheConfig) {
|
||||||
externalCache.baseCacheKey = `${baseCacheKey}-external-`
|
externalCache.baseCacheKey = `${baseCacheKey}-external-`
|
||||||
externalCache.manifest = {
|
externalCache.manifest = {
|
||||||
files: [
|
files: [
|
||||||
`${moduleRoot}/MODULE.bazel`,
|
'MODULE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bazel`,
|
'WORKSPACE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bzlmod`,
|
'WORKSPACE.bzlmod',
|
||||||
`${moduleRoot}/WORKSPACE`
|
'WORKSPACE'
|
||||||
],
|
],
|
||||||
name: `external-${manifestName}-manifest`,
|
name: `external-${manifestName}-manifest`,
|
||||||
path: `${os.tmpdir()}/external-cache-manifest.txt`
|
path: `${os.tmpdir()}/external-cache-manifest.txt`
|
||||||
|
|
@ -111,10 +110,10 @@ if (externalCacheConfig) {
|
||||||
externalCache.default = {
|
externalCache.default = {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
files: [
|
files: [
|
||||||
`${moduleRoot}/MODULE.bazel`,
|
'MODULE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bazel`,
|
'WORKSPACE.bazel',
|
||||||
`${moduleRoot}/WORKSPACE.bzlmod`,
|
'WORKSPACE.bzlmod',
|
||||||
`${moduleRoot}/WORKSPACE`
|
'WORKSPACE'
|
||||||
],
|
],
|
||||||
name: (name) => { return `external-${name}` },
|
name: (name) => { return `external-${name}` },
|
||||||
paths: (name) => {
|
paths: (name) => {
|
||||||
|
|
@ -138,10 +137,9 @@ 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: ['.bazelversion'],
|
||||||
name: 'bazelisk',
|
name: 'bazelisk',
|
||||||
paths: [core.toPosixPath(`${userCacheDir}/bazelisk`)]
|
paths: [core.toPosixPath(`${userCacheDir}/bazelisk`)]
|
||||||
},
|
},
|
||||||
|
|
@ -151,8 +149,7 @@ module.exports = {
|
||||||
enabled: diskCacheEnabled,
|
enabled: diskCacheEnabled,
|
||||||
files: [
|
files: [
|
||||||
...repositoryCacheFiles,
|
...repositoryCacheFiles,
|
||||||
`${moduleRoot}/**/BUILD.bazel`,
|
...diskCacheFiles
|
||||||
`${moduleRoot}/**/BUILD`
|
|
||||||
],
|
],
|
||||||
name: diskCacheName,
|
name: diskCacheName,
|
||||||
paths: [bazelDisk]
|
paths: [bazelDisk]
|
||||||
|
|
|
||||||
105069
dist/main/index.js
vendored
105069
dist/main/index.js
vendored
File diff suppressed because one or more lines are too long
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
102714
dist/post/index.js
vendored
102714
dist/post/index.js
vendored
File diff suppressed because one or more lines are too long
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
35
index.js
35
index.js
|
|
@ -96,11 +96,7 @@ async function downloadBazelisk() {
|
||||||
|
|
||||||
core.debug('Adding to the cache...');
|
core.debug('Adding to the cache...');
|
||||||
fs.chmodSync(downloadPath, '755');
|
fs.chmodSync(downloadPath, '755');
|
||||||
let bazel_name = "bazel";
|
const cachePath = await tc.cacheFile(downloadPath, 'bazel', 'bazelisk', version)
|
||||||
if (platform == 'windows') {
|
|
||||||
bazel_name = `${bazel_name}.exe`
|
|
||||||
}
|
|
||||||
const cachePath = await tc.cacheFile(downloadPath, bazel_name, 'bazelisk', version)
|
|
||||||
core.debug(`Successfully cached bazelisk to ${cachePath}`)
|
core.debug(`Successfully cached bazelisk to ${cachePath}`)
|
||||||
|
|
||||||
return cachePath
|
return cachePath
|
||||||
|
|
@ -133,16 +129,14 @@ async function restoreExternalCaches(cacheConfig) {
|
||||||
// Now restore all external caches defined in manifest
|
// Now restore all external caches defined in manifest
|
||||||
if (fs.existsSync(path)) {
|
if (fs.existsSync(path)) {
|
||||||
const manifest = fs.readFileSync(path, { encoding: 'utf8' })
|
const manifest = fs.readFileSync(path, { encoding: 'utf8' })
|
||||||
const restorePromises = manifest.split('\n').filter(s => s)
|
for (const name of manifest.split('\n').filter(s => s)) {
|
||||||
.map(name => {
|
await restoreCache({
|
||||||
return restoreCache({
|
enabled: cacheConfig[name]?.enabled ?? cacheConfig.default.enabled,
|
||||||
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)
|
})
|
||||||
});
|
}
|
||||||
});
|
|
||||||
await Promise.all(restorePromises);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -152,10 +146,9 @@ async function restoreCache(cacheConfig) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const delay = Math.random() * 1000 // timeout <= 1 sec to reduce 429 errors
|
const delay = Math.random() * 1000 // timeout <= 1 sec to reduce 429 errors
|
||||||
await setTimeout(delay)
|
await setTimeout(delay, async function () {
|
||||||
|
core.startGroup(`Restore cache for ${cacheConfig.name}`)
|
||||||
|
|
||||||
core.startGroup(`Restore cache for ${cacheConfig.name}`)
|
|
||||||
try {
|
|
||||||
const hash = await glob.hashFiles(cacheConfig.files.join('\n'))
|
const hash = await glob.hashFiles(cacheConfig.files.join('\n'))
|
||||||
const name = cacheConfig.name
|
const name = cacheConfig.name
|
||||||
const paths = cacheConfig.paths
|
const paths = cacheConfig.paths
|
||||||
|
|
@ -178,11 +171,9 @@ async function restoreCache(cacheConfig) {
|
||||||
} else {
|
} else {
|
||||||
core.info(`Failed to restore ${name} cache`)
|
core.info(`Failed to restore ${name} cache`)
|
||||||
}
|
}
|
||||||
} catch (err) {
|
|
||||||
core.warning(`Failed to restore ${name} cache with error: ${err}`)
|
|
||||||
} finally {
|
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
}
|
}())
|
||||||
}
|
}
|
||||||
|
|
||||||
run()
|
run()
|
||||||
|
|
|
||||||
1045
package-lock.json
generated
1045
package-lock.json
generated
File diff suppressed because it is too large
Load diff
14
package.json
14
package.json
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "setup-bazel",
|
"name": "setup-bazel",
|
||||||
"version": "0.18.0",
|
"version": "0.13.0",
|
||||||
"description": "Install and configure Bazel for GitHub Actions",
|
"description": "Install and configure Bazel for GitHub Actions",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "24.x"
|
"node": "22.x"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "ncc build index.js -s -o dist/main && ncc build post.js -s -o dist/post",
|
"build": "ncc build index.js -s -o dist/main && ncc build post.js -s -o dist/post",
|
||||||
|
|
@ -13,11 +13,11 @@
|
||||||
"author": "Alex Rodionov <p0deje@gmail.com>",
|
"author": "Alex Rodionov <p0deje@gmail.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^6.0.0",
|
"@actions/cache": "^4.0.0",
|
||||||
"@actions/core": "^3.0.0",
|
"@actions/core": "^1.10.1",
|
||||||
"@actions/github": "^9.0.0",
|
"@actions/github": "^6.0.0",
|
||||||
"@actions/glob": "^0.6.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@actions/tool-cache": "^4.0.0",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"@vercel/ncc": "^0.38.0",
|
"@vercel/ncc": "^0.38.0",
|
||||||
"yaml": "^2.2.1"
|
"yaml": "^2.2.1"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
5
post.js
5
post.js
|
|
@ -13,11 +13,6 @@ 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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue