Refactor Bazel build with custom proto rules and build all test targets #901
Workflow file for this run
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: Build and Test on Linux | |
| on: | |
| push: | |
| branches: [ master ] | |
| paths-ignore: | |
| - '**.md' | |
| pull_request: | |
| branches: [ master ] | |
| paths-ignore: | |
| - '**.md' | |
| env: | |
| proc_num: $(nproc) | |
| # https://github.com/actions/runner-images | |
| jobs: | |
| compile-with-make: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-all-dependencies | |
| - name: gcc with default options | |
| uses: ./.github/actions/compile-with-make | |
| with: | |
| options: --headers=/usr/include --libs=/usr/lib /usr/lib64 --cc=gcc --cxx=g++ --werror | |
| - name: gcc with all options | |
| uses: ./.github/actions/compile-with-make | |
| with: | |
| options: --headers=/usr/include --libs=/usr/lib /usr/lib64 --cc=gcc --cxx=g++ --werror --with-thrift --with-glog --with-rdma --with-debug-bthread-sche-safety --with-debug-lock --with-bthread-tracer --with-asan | |
| - name: clang with default options | |
| uses: ./.github/actions/compile-with-make | |
| with: | |
| options: --headers=/usr/include --libs=/usr/lib /usr/lib64 --cc=clang --cxx=clang++ --werror | |
| - name: clang with all options | |
| uses: ./.github/actions/compile-with-make | |
| with: | |
| options: --headers=/usr/include --libs=/usr/lib /usr/lib64 --cc=clang --cxx=clang++ --werror --with-thrift --with-glog --with-rdma --with-debug-bthread-sche-safety --with-debug-lock --with-bthread-tracer --with-asan | |
| compile-with-cmake: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-all-dependencies | |
| - name: gcc with default options | |
| run: | | |
| export CC=gcc && export CXX=g++ | |
| mkdir gcc_build && cd gcc_build && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. | |
| make -j ${{env.proc_num}} && make clean | |
| - name: gcc with all options | |
| run: | | |
| export CC=gcc && export CXX=g++ | |
| mkdir gcc_build_all && cd gcc_build_all | |
| cmake -DWITH_MESALINK=OFF -DWITH_GLOG=ON -DWITH_THRIFT=ON -DWITH_RDMA=ON -DWITH_DEBUG_BTHREAD_SCHE_SAFETY=ON -DWITH_DEBUG_LOCK=ON -DWITH_BTHREAD_TRACER=ON -DWITH_ASAN=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. | |
| make -j ${{env.proc_num}} && make clean | |
| - name: clang with default options | |
| run: | | |
| export CC=clang && export CXX=clang++ | |
| mkdir clang_build && cd clang_build && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. | |
| make -j ${{env.proc_num}} && make clean | |
| - name: clang with all options | |
| run: | | |
| export CC=clang && export CXX=clang++ | |
| mkdir clang_build_all && cd clang_build_all | |
| cmake -DWITH_MESALINK=OFF -DWITH_GLOG=ON -DWITH_THRIFT=ON -DWITH_RDMA=ON -DWITH_DEBUG_BTHREAD_SCHE_SAFETY=ON -DWITH_DEBUG_LOCK=ON -DWITH_BTHREAD_TRACER=ON -DWITH_ASAN=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. | |
| make -j ${{env.proc_num}} && make clean | |
| gcc-compile-with-make-protobuf: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-essential-dependencies | |
| - name: protobuf 3.5.1 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 3.5.1 | |
| protobuf-cpp-version: 3.5.1 | |
| protobuf-install-dir: /protobuf-3.5.1 | |
| config-brpc-options: --cc=gcc --cxx=g++ --werror | |
| - name: protobuf 3.12.4 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 3.12.4 | |
| protobuf-cpp-version: 3.12.4 | |
| protobuf-install-dir: /protobuf-3.12.4 | |
| config-brpc-options: --cc=gcc --cxx=g++ --werror | |
| - name: protobuf 21.12 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 21.12 | |
| protobuf-cpp-version: 3.21.12 | |
| protobuf-install-dir: /protobuf-3.21.12 | |
| config-brpc-options: --cc=gcc --cxx=g++ --werror | |
| gcc-compile-and-test-with-bazel: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: bazel build --verbose_failures -- //... -//example/... -//test/... | |
| - run: bazel test //test/... | |
| gcc-compile-with-boringssl: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: bazel build --verbose_failures --define with_mesalink=false --define with_glog=true --define with_thrift=true --define BRPC_WITH_BORINGSSL=true -- //... -//example/... | |
| gcc-compile-with-bazel-all-options: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: | | |
| bazel build --verbose_failures \ | |
| --define with_mesalink=false \ | |
| --define with_glog=true \ | |
| --define with_thrift=true \ | |
| --define with_debug_bthread_sche_safety=true \ | |
| --define with_debug_lock=true \ | |
| --define with_asan=true \ | |
| --define with_bthread_tracer=true \ | |
| --define BRPC_WITH_NO_PTHREAD_MUTEX_HOOK=true \ | |
| --define with_babylon_counter=true \ | |
| -- //... -//example/... | |
| clang-compile-with-make-protobuf: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-essential-dependencies | |
| - name: protobuf 3.5.1 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 3.5.1 | |
| protobuf-cpp-version: 3.5.1 | |
| protobuf-install-dir: /protobuf-3.5.1 | |
| config-brpc-options: --cc=clang --cxx=clang++ --werror | |
| - name: protobuf 3.12.4 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 3.12.4 | |
| protobuf-cpp-version: 3.12.4 | |
| protobuf-install-dir: /protobuf-3.12.4 | |
| config-brpc-options: --cc=clang --cxx=clang++ --werror | |
| - name: protobuf 21.12 | |
| uses: ./.github/actions/compile-with-make-protobuf | |
| with: | |
| protobuf-version: 21.12 | |
| protobuf-cpp-version: 3.21.12 | |
| protobuf-install-dir: /protobuf-3.21.12 | |
| config-brpc-options: --cc=clang --cxx=clang++ --werror | |
| clang-compile-and-test-with-bazel: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: bazel build --verbose_failures --action_env=CC=clang -- //... -//example/... -//test/... | |
| - run: bazel test --action_env=CC=clang //test/... | |
| clang-compile-with-boringssl: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: bazel build --verbose_failures --action_env=CC=clang --define with_mesalink=false --define with_glog=true --define with_thrift=true --define BRPC_WITH_BORINGSSL=true -- //... -//example/... | |
| clang-compile-with-bazel-all-options: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: | | |
| bazel build --verbose_failures \ | |
| --action_env=CC=clang \ | |
| --define with_mesalink=false \ | |
| --define with_glog=true \ | |
| --define with_thrift=true \ | |
| --define with_debug_bthread_sche_safety=true \ | |
| --define with_debug_lock=true \ | |
| --define with_asan=true \ | |
| --define with_bthread_tracer=true \ | |
| --define BRPC_WITH_NO_PTHREAD_MUTEX_HOOK=true \ | |
| --define with_babylon_counter=true \ | |
| -- //... -//example/... | |
| clang-unittest: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-essential-dependencies | |
| - uses: ./.github/actions/init-ut-make-config | |
| with: | |
| options: --with-bthread-tracer | |
| - name: compile tests | |
| run: | | |
| cat config.mk | |
| cd test | |
| make -j ${{env.proc_num}} | |
| - name: run tests | |
| run: | | |
| cd test | |
| sh ./run_tests.sh | |
| clang-unittest-asan: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: ./.github/actions/install-essential-dependencies | |
| - uses: ./.github/actions/init-ut-make-config | |
| with: | |
| options: --with-bthread-tracer --with-asan | |
| - name: compile tests | |
| run: | | |
| cat config.mk | |
| cd test | |
| make NEED_GPERFTOOLS=0 -j ${{env.proc_num}} | |
| - name: run tests | |
| run: | | |
| cd test | |
| sh ./run_tests.sh | |
| clang-bazel-unittest-bvar-babylon: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - run: bazel test --verbose_failures --define with_babylon_counter=true //test:bvar_test | |
| - run: bazel test --verbose_failures --action_env=CC=clang --define with_babylon_counter=true //test:bvar_test | |
| clang-bazel-unittest-new-pb: | |
| runs-on: ubuntu-22.04 | |
| env: | |
| TEST_PROTOBUF_VERSION: "35.0" | |
| # protobuf >= 34.x uses new ProtoInfo fields (option_deps, | |
| # extension_declarations) introduced in Bazel 8.x. The repo's | |
| # .bazelversion (7.2.1) is too old. bazelisk honors USE_BAZEL_VERSION. | |
| USE_BAZEL_VERSION: "8.3.1" | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Override protobuf version for testing | |
| run: | | |
| sed -i -E "s/(bazel_dep\(name = ['\"]protobuf['\"], version = ['\"])[^'\"]+/\1${TEST_PROTOBUF_VERSION}/" MODULE.bazel | |
| echo "After override:" | |
| grep -E "bazel_dep\(name = ['\"]protobuf['\"]" MODULE.bazel | |
| grep -qE "bazel_dep\(name = ['\"]protobuf['\"], version = ['\"]${TEST_PROTOBUF_VERSION}['\"]" MODULE.bazel \ | |
| || { echo "ERROR: failed to override protobuf version in MODULE.bazel to ${TEST_PROTOBUF_VERSION}"; exit 1; } | |
| - run: bazel test --action_env=CC=clang //test:brpc_unittests |