From b705e46c945801b189ab778ea2d0c27a3272282a Mon Sep 17 00:00:00 2001 From: SecAgg Team Date: Mon, 27 Jul 2026 12:25:54 -0700 Subject: [PATCH] Improve Bazel caching strategy in GitHub Actions presubmit workflow. PiperOrigin-RevId: 954766858 --- .bazelrc | 5 ++++- .github/workflows/presubmit.yml | 23 +++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.bazelrc b/.bazelrc index d962da2..6f0a449 100644 --- a/.bazelrc +++ b/.bazelrc @@ -2,4 +2,7 @@ build --action_env=CC=clang build --action_env=CXX=clang++ build --repo_env=CC=clang -build --repo_env=CXX=clang++ \ No newline at end of file +build --repo_env=CXX=clang++ + +# retry transient network timeouts when downloading external repositories +build --http_connector_attempts=3 \ No newline at end of file diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index de9228a..86f764f 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -38,20 +38,27 @@ jobs: - name: Set bazel version run: echo "${{ matrix.bazel-version }}.x" > .bazelversion - - name: Cache bazel build artifacts + - name: Cache Bazel repository dependencies uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # pin@v5.0.1 with: - path: | - ~/.cache/bazel - key: ${{ runner.os }}-bazel-v${{ matrix.bazel-version }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel.lock') }}-${{ github.sha }} + path: ~/.cache/bazel-repo + key: ${{ runner.os }}-bazel-repo-v${{ matrix.bazel-version }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel', 'MODULE.bazel.lock') }} restore-keys: | - ${{ runner.os }}-bazel-v${{ matrix.bazel-version }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel.lock') }}- - ${{ runner.os }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel.lock') }}- + ${{ runner.os }}-bazel-repo-v${{ matrix.bazel-version }}- + + - name: Cache Bazel build outputs + uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # pin@v5.0.1 + with: + path: ~/.cache/bazel-disk + key: ${{ runner.os }}-bazel-disk-v${{ matrix.bazel-version }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel', 'MODULE.bazel.lock', '**/BUILD', '**/BUILD.bazel', '**/*.bzl') }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-bazel-disk-v${{ matrix.bazel-version }}-${{ hashFiles('.bazelrc', '.bazelversion', 'MODULE.bazel', 'MODULE.bazel.lock', '**/BUILD', '**/BUILD.bazel', '**/*.bzl') }}- + ${{ runner.os }}-bazel-disk-v${{ matrix.bazel-version }}- - name: "Run `bazel build`" run: | - bazel build -c opt //... + bazel build --repository_cache=~/.cache/bazel-repo --disk_cache=~/.cache/bazel-disk -c opt //... - name: "Run `bazel test`" run: | - bazel test -c opt //... + bazel test --repository_cache=~/.cache/bazel-repo --disk_cache=~/.cache/bazel-disk -c opt //...