Skip to content

base/internal: fix data race on JobQueue::node_id_ (TSan) (#205) #234

base/internal: fix data race on JobQueue::node_id_ (TSan) (#205)

base/internal: fix data race on JobQueue::node_id_ (TSan) (#205) #234

Workflow file for this run

name: Bazel Build
on:
# Skip when every changed file is markdown. See the matching note in
# build-and-test.yml; the markdown-link-check workflow still runs and
# verifies documentation correctness independently.
push:
branches: [master]
paths-ignore:
- '**/*.md'
pull_request:
branches: [master]
paths-ignore:
- '**/*.md'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
# Cache bazel's output base. Restoring it makes a "warm" CI run reuse
# everything bazel already compiled (foreign_cc thirdparty, all .o, test
# results) -- the next push that touches only a few .cc files rebuilds
# those plus their downstream, instead of the full ~14 min cold build.
# Key is tied to WORKSPACE + every BUILD.bazel + thirdparty tarballs so
# any structural change invalidates; restore-keys lets us fall back to
# the most recent cache on the same OS even if those don't match.
- name: Cache bazel
uses: actions/cache@v4
with:
path: |
~/.cache/bazel
key: bazel-${{ runner.os }}-${{ hashFiles('WORKSPACE', '**/BUILD.bazel', 'thirdparty/**/*.tar.gz', 'thirdparty/**/*.zip', 'thirdparty/**/*.patch') }}
restore-keys: |
bazel-${{ runner.os }}-
- name: Setup bazel
run: |
rm -rf /usr/local/bin/bazel
wget https://github.com/bazelbuild/bazel/releases/download/7.5.0/bazel-7.5.0-linux-x86_64 -O /usr/local/bin/bazel
chmod +x /usr/local/bin/bazel
- name: Build
# Build your program with clang
working-directory: ${{github.workspace}}
run: bazel build ...
- name: Test
# Build and Execute tests. Benchmarks (cc_test name = "*_benchmark",
# tagged "benchmark") are excluded from CI -- they're for manual perf
# runs, not pass/fail validation.
working-directory: ${{github.workspace}}
run: bazel test --test_output=errors --test_tag_filters=-benchmark ...
build_on_macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- name: Cache bazel
uses: actions/cache@v4
with:
path: |
~/.cache/bazel
key: bazel-${{ runner.os }}-${{ hashFiles('WORKSPACE', '**/BUILD.bazel', 'thirdparty/**/*.tar.gz', 'thirdparty/**/*.zip', 'thirdparty/**/*.patch') }}
restore-keys: |
bazel-${{ runner.os }}-
# foreign_cc autotools deps (jemalloc/openssl/curl/nghttp2) run autogen.sh,
# which needs autoconf/automake/libtool (not preinstalled on the runner).
- name: Install dependencies
run: brew install autoconf automake libtool
# macOS runners ship bazelisk as `bazel`, which honors .bazelversion (7.5.0).
- name: Build
working-directory: ${{github.workspace}}
run: bazel build //flare/...