This action allows to properly configure Bazelisk and Bazel on all operating systems and provides an advanced fine-grained caching to improve workflows performance.
- uses: bazel-contrib/[email protected]
with:
# Avoid downloading Bazel every time.
bazelisk-cache: true
# Store build cache per workflow.
disk-cache: ${{ github.workflow }}
# Share repository cache between workflows.
repository-cache: true
Cache bazelisk
downloads based on contents of a .bazelversion
file.
Default false
.
bazelisk
version to download and use.
Supports semver specification and ranges. Leave empty to use pre-installed Bazelisk.
Default ""
.
Examples
- uses: bazel-contrib/[email protected]
with:
bazelisk-version: 1.x
- uses: bazel-contrib/[email protected]
with:
bazelisk-version: 1.19.0
Extra contents to write to a user's bazelrc
file.
You can use multiline YAML strings.
Default ""
.
Examples
- uses: bazel-contrib/[email protected]
with:
bazelrc: common --enable_bzlmod
- uses: bazel-contrib/[email protected]
with:
bazelrc: |
build --color=yes
build --show_timestamps
Enable disk_cache
and store it on GitHub based on contents of BUILD
files.
You can also pass a string to use as a cache key to separate caches from different workflows.
Default false
.
Examples
- uses: bazel-contrib/[email protected]
with:
disk-cache: true
- uses: bazel-contrib/[email protected]
with:
disk-cache: ${{ github.workflow }}}
Cache external/
repositories based on contents of MODULE.bazel
and WORKSPACE
files.
Only repositories exceeding 10MB are being cached.
Each repository is stored in a separate cache.
You can also pass a manifest
object where key is the name of the external repository
and value is a file (or list of files) which contents are used to calculate cache key.
If the value is false
, the external repository won't be cached.
Default false
.
Examples
- uses: bazel-contrib/[email protected]
with:
external-cache: true
- uses: bazel-contrib/[email protected]
with:
external-cache: |
manifest:
npm: package-lock.json
- uses: bazel-contrib/[email protected]
with:
external-cache: |
manifest:
ruby: ${{ runner.os == 'Windows' && 'false' || 'true' }}
Google Cloud account key to use for remote caching authentication.
Default ""
.
Examples
- uses: bazel-contrib/[email protected]
with:
google-credentials: ${{ secrets.GOOGLE_CLOUD_KEY }}
Change Bazel output base directory.
You might want to change it when running on self-hosted runners with a custom directory layout.
Default is one of the following:
$HOME/.bazel
on Linux and macOSD:/_bazel
on Windows
Enable repository_cache
and store it on GitHub based on contents of MODULE.bazel
and WORKSPACE
files.
You can also pass a file (or list of files) which contents are used to calculate cache key.
Default false
.
Examples
- uses: bazel-contrib/[email protected]
with:
repository-cache: true
- uses: bazel-contrib/[email protected]
with:
repository-cache: examples/gem/WORKSPACE
Migrating from bazelbuild/setup-bazelisk
You can simply replace bazelbuild/setup-bazelisk
action with bazel-contrib/setup-bazel
.
However, if you used a bazel-version
input before, you will need to remove it in favor
other ways to specify Bazel version.
To build action, run the following command:
$ npm run build
Use Release workflow to cut a new release.