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/setup-bazel@0.9.1
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
bazelisk-cache
Cache bazelisk
downloads based on contents of a .bazelversion
file.
Default false
.
bazelisk-version
bazelisk
version to download and use.
Supports semver specification and ranges. Leave empty to use pre-installed Bazelisk.
Default ""
.
bazelrc
Extra contents to write to a user's bazelrc
file.
You can use multiline YAML strings.
Default ""
.
disk-cache
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
.
external-cache
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
.
google-credentials
Google Cloud account key to use for remote caching authentication.
Default ""
.
repository-cache
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
.
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.