setup-bazel/README.md
2024-02-13 08:59:38 -08:00

3 KiB

setup-bazel

This action allows to properly configure Bazelisk and Bazel on all operating systems and provides an advanced fine-grained caching to improve workflows performance.

Inputs

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.

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 a WORKSPACE file. Only repositories exceeding 10MB are being cached.

You can also pass a YAML object where key is the name of the external repository and value is the list of files which contents are used to calculate cache key.

Default false.

repository-cache

Enable repository_cache and store it on GitHub based on contents of a WORKSPACE file.

Default false.

Examples

Simple configuration

- uses: p0deje/setup-bazel@0.6.0

Custom Bazelisk version

- uses: p0deje/setup-bazel@0.6.0
  with:
    bazelisk-version: 1.19.0

Additional .bazelrc options

- uses: p0deje/setup-bazel@0.6.0
  with:
    bazelrc: |
      build --show_timestamps

Full caching enabled

- uses: p0deje/setup-bazel@0.6.0
  with:
    bazelisk-cache: true
    disk-cache: true
    external-cache: true
    repository-cache: true

Separate disk cache between workflows

- uses: p0deje/setup-bazel@0.6.0
  with:
    disk-cache: ${{ github.workflow }}}

Cache external repository based on different files

- uses: p0deje/setup-bazel@0.6.0
  with:
    external-cache: |
      manifest:
        npm: package-lock.json

Disable individual external repositories conditionally

- uses: p0deje/setup-bazel@0.6.0
  with:
    external-cache: |
      manifest:
        ruby: ${{ matrix.os == 'windows' && 'false' || '.ruby-version' }}

Migrating from bazelbuild/setup-bazelisk

You can simply replace bazelbuild/setup-bazelisk action with p0deje/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.