| #!/bin/bash |
| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # This is the CI version of `bazelisk.sh`, which calls into the "usual" wrapper, |
| # but adds various flags to produce CI-friendly output. It does so by prociding a |
| # command-line specified .bazelrc (that is applied alongside //.bazelrc). |
| |
| if [[ -n "${PWD_OVERRIDE}" ]]; then |
| cd "${PWD_OVERRIDE}" || exit |
| fi |
| |
| echo "Running bazelisk in $(pwd)." |
| |
| # An additional bazelrc must be synthesized to specify precisely how to use the |
| # GCP bazel cache. |
| GCP_BAZELRC="$(mktemp /tmp/XXXXXX.bazelrc)" |
| trap 'rm ${GCP_BAZELRC}' EXIT |
| |
| if [[ -n "${GCP_BAZEL_CACHE_KEY}" && -f "${GCP_BAZEL_CACHE_KEY}" ]]; then |
| echo "Applying GCP cache key; will upload to the cache." |
| echo "build --google_credentials=${GCP_BAZEL_CACHE_KEY}" >> "${GCP_BAZELRC}" |
| else |
| echo "No key/invalid path to key. Download from cache only." |
| echo "build --remote_upload_local_results=false" >> "${GCP_BAZELRC}" |
| fi |
| |
| # Inject the OS version into a parameter used in the action key computation to |
| # avoid collisions between different operating systems in the caches. |
| # See #14695 for more information. |
| echo "build --remote_default_exec_properties=OSVersion=\"$(lsb_release -ds)\"" >> "${GCP_BAZELRC}" |
| |
| "$(dirname $0)"/../bazelisk.sh \ |
| --bazelrc="${GCP_BAZELRC}" \ |
| --bazelrc="$(dirname $0)"/.bazelrc \ |
| "$@" |