From 454cce43b6d36022785ea65b8e55a43ad5b2dec3 Mon Sep 17 00:00:00 2001 From: Jeff Pignataro Date: Thu, 17 Sep 2026 12:35:52 -0600 Subject: [PATCH] ci: shut down the Bazel server after each test leg Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_011fhMDeQAA118gVquCvqVda --- .github/workflows/ci-workflows.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/ci-workflows.yaml b/.github/workflows/ci-workflows.yaml index e9f5d0c1f..6523f39d4 100644 --- a/.github/workflows/ci-workflows.yaml +++ b/.github/workflows/ci-workflows.yaml @@ -119,6 +119,19 @@ jobs: if [ -f test.sh ]; then bash test.sh fi + # Self-hosted runners keep the Bazel server alive between jobs, and both + # bazel legs share one output base. A client of another Bazel version + # kills that server with `shutdown`, on which Bazel's lockfile module + # also runs: a 9.x server left by the bazel-9 leg rewrites + # MODULE.bazel.lock (lockFileVersion 28) after actions/checkout has + # restored the committed file, and the bazel-8 leg then fails + # --lockfile_mode=error. Shutting down here keeps that write inside the + # job that owns the server, ahead of the next checkout. + - name: Shut down the Bazel server + if: always() && runner.environment == 'self-hosted' + working-directory: ${{ matrix.workspace.path }} + timeout-minutes: 5 + run: bazel shutdown # Cross-build validation: build wheels for the opposite architecture on # each Linux runner, then install and run the case's standalone test on a # native runner of the target architecture. No OCI containers — just pip