# setup-bazel This action allows to properly configure Bazel on all supported operating systems and provides an advanced fine-grained caching to improve workflows performance. ## Inputs ### `bazelisk-cache` Cache [`bazelisk`][1] downloads based on contents of a `.bazelversion` file. Default `false`. ### `bazelrc` Extra contents to write to a user's [`bazelrc`][4] file. Default `""`. ### `disk-cache` Enable [`disk_cache`][2] 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`][3] and store it on GitHub based on contents of a `WORKSPACE` file. Default `false`. ## Examples ### Simple configuration ```yaml - uses: p0deje/setup-bazel@0.4.0 ``` ### Additional `.bazelrc` options ```yaml - uses: p0deje/setup-bazel@0.4.0 with: bazelrc: | build --show_timestamps ``` ### Full caching enabled ```yaml - uses: p0deje/setup-bazel@0.4.0 with: bazelisk-cache: true disk-cache: true external-cache: true repository-cache: true ``` ### Separate disk cache between workflows ```yaml - uses: p0deje/setup-bazel@0.4.0 with: disk-cache: ${{ github.workflow }}} ``` ### Cache external repository based on different files ```yaml - uses: p0deje/setup-bazel@0.4.0 with: external-cache: | manifest: npm: package-lock.json ``` ### Disable individual external repositories conditionally ```yaml - uses: p0deje/setup-bazel@0.4.0 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 [4]: https://bazel.build/run/bazelrc [5]: https://docs.github.com/en/actions/learn-github-actions/contexts#github-context