base/internal: fix data race on JobQueue::node_id_ (TSan) (#205) #234
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/... |