This is an automated email from the ASF dual-hosted git repository.
chenBright pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git
The following commit(s) were added to refs/heads/master by this push:
new 1fa8022b Speed up CI with build caching and parallel jobs (#3486)
1fa8022b is described below
commit 1fa8022bf04368c4b250cc07fd7f133f8cb91f22
Author: Xiaofeng Wang <[email protected]>
AuthorDate: Thu Aug 27 10:06:21 2026 +0800
Speed up CI with build caching and parallel jobs (#3486)
* Cache CI build outputs
* Report ccache statistics in CI
* Run CMake configurations in parallel
* Run Bazel tests on every CI build
* Run Make configurations in parallel
* Run GCC protobuf builds in parallel
* Consolidate CI dependency installation
* Run Clang protobuf builds in parallel
* Upgrade checkout action to Node.js 24
* Limit CI concurrency per ASF policy
Merge the GCC and Clang Protobuf configurations into one matrix and cap its
parallelism at two. Cap the Make and CMake matrices at two jobs each.
This preserves all build configurations while limiting the combined Linux,
macOS, and license job concurrency to 17, below the ASF limit of 20.
Policy: https://infra.apache.org/github-actions-policy.html
---
.github/actions/init-ut-make-config/action.yml | 3 -
.../actions/install-all-dependencies/action.yml | 8 +-
.../install-essential-dependencies/action.yml | 11 +-
.github/actions/setup-build-cache/action.yml | 75 ++++++
.github/workflows/ci-linux.yml | 290 +++++++++++++--------
.github/workflows/ci-macos.yml | 23 +-
.github/workflows/license-eyes.yml | 2 +-
7 files changed, 295 insertions(+), 117 deletions(-)
diff --git a/.github/actions/init-ut-make-config/action.yml
b/.github/actions/init-ut-make-config/action.yml
index 9df81036..8f770845 100644
--- a/.github/actions/init-ut-make-config/action.yml
+++ b/.github/actions/init-ut-make-config/action.yml
@@ -5,9 +5,6 @@ inputs:
runs:
using: "composite"
steps:
- - run: |
- sudo apt-get update && sudo apt-get install -y clang-12 lldb-12 lld-12
libgtest-dev cmake gdb libstdc++6-11-dbg
- shell: bash
- run: |
cd /usr/src/gtest && export CC=clang-12 && export CXX=clang++-12 && sudo
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .
sudo make -j ${{env.proc_num}} && sudo mv lib/libgtest* /usr/lib/
diff --git a/.github/actions/install-all-dependencies/action.yml
b/.github/actions/install-all-dependencies/action.yml
index 5c1f673f..e104d10d 100644
--- a/.github/actions/install-all-dependencies/action.yml
+++ b/.github/actions/install-all-dependencies/action.yml
@@ -2,11 +2,13 @@ runs:
using: "composite"
steps:
- uses: ./.github/actions/install-essential-dependencies
- - run: sudo apt-get update && sudo apt-get install -y libunwind-dev
libgoogle-glog-dev automake bison flex libboost-all-dev libevent-dev libtool
pkg-config libibverbs-dev
- shell: bash
+ with:
+ extra-packages: >-
+ ccache libunwind-dev libgoogle-glog-dev automake bison flex
+ libboost-all-dev libevent-dev libtool pkg-config
- run: |
wget
https://archive.apache.org/dist/thrift/0.11.0/thrift-0.11.0.tar.gz && tar -xf
thrift-0.11.0.tar.gz && cd thrift-0.11.0/
- ./configure --prefix=/usr --with-rs=no --with-ruby=no --with-python=no
--with-java=no --with-go=no --with-perl=no --with-php=no --with-csharp=no
--with-erlang=no --with-lua=no --with-nodejs=no --with-haskell=no
--with-dotnetcore=no CXXFLAGS="-Wno-unused-variable"
+ ./configure --prefix=/usr --disable-tests --with-rs=no --with-ruby=no
--with-python=no --with-java=no --with-go=no --with-perl=no --with-php=no
--with-csharp=no --with-erlang=no --with-lua=no --with-nodejs=no
--with-haskell=no --with-dotnetcore=no CXXFLAGS="-Wno-unused-variable"
make -j ${{env.proc_num}} && sudo make install
shell: bash
- run: |
diff --git a/.github/actions/install-essential-dependencies/action.yml
b/.github/actions/install-essential-dependencies/action.yml
index 5c1944d6..a9802337 100644
--- a/.github/actions/install-essential-dependencies/action.yml
+++ b/.github/actions/install-essential-dependencies/action.yml
@@ -1,9 +1,18 @@
+inputs:
+ extra-packages:
+ description: Additional apt packages to install in the same transaction
+ required: false
+
runs:
using: "composite"
steps:
- run: ulimit -c unlimited -S && sudo bash -c "echo 'core.%e.%p' >
/proc/sys/kernel/core_pattern"
shell: bash
- - run: sudo apt-get update && sudo apt-get install -y git g++ make
libssl-dev libgflags-dev libprotobuf-dev libprotoc-dev protobuf-compiler
libleveldb-dev redis-server mysql-server libibverbs-dev
+ - run: |
+ sudo apt-get update
+ sudo apt-get install -y git g++ make libssl-dev libgflags-dev \
+ libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev \
+ redis-server mysql-server libibverbs-dev ${{ inputs.extra-packages }}
shell: bash
- run: redis-server --version && mysqld --version
shell: bash
diff --git a/.github/actions/setup-build-cache/action.yml
b/.github/actions/setup-build-cache/action.yml
new file mode 100644
index 00000000..6045ec89
--- /dev/null
+++ b/.github/actions/setup-build-cache/action.yml
@@ -0,0 +1,75 @@
+name: Setup build cache
+description: Restore and configure the compiler cache used by CI builds
+
+inputs:
+ kind:
+ description: Cache backend to configure (ccache or bazel)
+ required: true
+ cache-key:
+ description: Cache namespace override for matrix jobs
+ required: false
+
+runs:
+ using: composite
+ steps:
+ - name: Restore ccache
+ if: inputs.kind == 'ccache'
+ uses: actions/cache@v6
+ with:
+ path: ~/.cache/ccache
+ key: ${{ runner.os }}-ccache-${{ inputs.cache-key || github.job
}}--${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-ccache-${{ inputs.cache-key || github.job }}--
+
+ - name: Configure ccache
+ if: inputs.kind == 'ccache'
+ shell: bash
+ run: |
+ if [[ "${{ runner.os }}" == "macOS" ]]; then
+ brew install ccache
+ fi
+
+ mkdir -p "${HOME}/.cache/ccache" "${HOME}/.cache/ccache-bin"
+ for compiler in cc c++ gcc g++ clang clang++ clang-12 clang++-12; do
+ ln -sf "$(command -v ccache)" "${HOME}/.cache/ccache-bin/${compiler}"
+ done
+ CCACHE_DIR="${HOME}/.cache/ccache" ccache --max-size=2G
+ CCACHE_DIR="${HOME}/.cache/ccache" ccache --zero-stats
+
+ echo "${HOME}/.cache/ccache-bin" >> "${GITHUB_PATH}"
+ echo "CCACHE_DIR=${HOME}/.cache/ccache" >> "${GITHUB_ENV}"
+ echo "CCACHE_BASEDIR=${GITHUB_WORKSPACE}" >> "${GITHUB_ENV}"
+ echo "CCACHE_COMPILERCHECK=content" >> "${GITHUB_ENV}"
+ echo "CCACHE_NOHASHDIR=true" >> "${GITHUB_ENV}"
+
+ - name: Restore Bazel repository cache
+ if: inputs.kind == 'bazel'
+ uses: actions/cache@v6
+ with:
+ path: |
+ ~/.cache/bazel-repository
+ ~/.cache/bazelisk
+ key: ${{ runner.os }}-bazel-repository-${{ hashFiles('.bazelversion',
'MODULE.bazel', 'MODULE.bazel.lock', 'WORKSPACE') }}
+ restore-keys: |
+ ${{ runner.os }}-bazel-repository-
+
+ - name: Restore Bazel disk cache
+ if: inputs.kind == 'bazel'
+ uses: actions/cache@v6
+ with:
+ path: ~/.cache/bazel-disk
+ key: ${{ runner.os }}-bazel-disk-${{ github.job }}-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-bazel-disk-${{ github.job }}-
+ ${{ runner.os }}-bazel-disk-
+
+ - name: Configure Bazel caches
+ if: inputs.kind == 'bazel'
+ shell: bash
+ run: |
+ mkdir -p "${HOME}/.cache/bazel-repository" "${HOME}/.cache/bazel-disk"
+ cat >> "${HOME}/.bazelrc" <<EOF
+ common --repository_cache=${HOME}/.cache/bazel-repository
+ common --disk_cache=${HOME}/.cache/bazel-disk
+ test --cache_test_results=no
+ EOF
diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml
index 57837ecf..70414a46 100644
--- a/.github/workflows/ci-linux.yml
+++ b/.github/workflows/ci-linux.yml
@@ -20,105 +20,185 @@ concurrency:
# https://github.com/actions/runner-images
jobs:
compile-with-make:
+ name: compile-with-make (${{ matrix.name }})
runs-on: ubuntu-22.04
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ include:
+ - name: gcc-default
+ make-options: >-
+ --headers=/usr/include --libs=/usr/lib /usr/lib64
+ --cc=gcc --cxx=g++ --werror
+ - name: gcc-all-options
+ make-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-default
+ make-options: >-
+ --headers=/usr/include --libs=/usr/lib /usr/lib64
+ --cc=clang --cxx=clang++ --werror
+ - name: clang-all-options
+ make-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
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- 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
+ - uses: ./.github/actions/setup-build-cache
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
+ kind: ccache
+ cache-key: make-${{ matrix.name }}
- - name: clang with default options
+ - name: Build
uses: ./.github/actions/compile-with-make
with:
- options: --headers=/usr/include --libs=/usr/lib /usr/lib64 --cc=clang
--cxx=clang++ --werror
+ options: ${{ matrix.make-options }}
- - 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
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
compile-with-cmake:
+ name: compile-with-cmake (${{ matrix.name }})
runs-on: ubuntu-22.04
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ include:
+ - name: gcc-default
+ cc: gcc
+ cxx: g++
+ cmake-options: ''
+ - name: gcc-all-options
+ cc: gcc
+ cxx: g++
+ cmake-options: >-
+ -DWITH_MESALINK=OFF -DWITH_GLOG=ON -DWITH_THRIFT=ON
+ -DWITH_RDMA=ON -DWITH_UBRING=ON
+ -DWITH_DEBUG_BTHREAD_SCHE_SAFETY=ON -DWITH_DEBUG_LOCK=ON
+ -DWITH_BTHREAD_TRACER=ON -DWITH_ASAN=ON
+ - name: clang-default
+ cc: clang
+ cxx: clang++
+ cmake-options: ''
+ - name: clang-all-options
+ cc: clang
+ cxx: clang++
+ cmake-options: >-
+ -DWITH_MESALINK=OFF -DWITH_GLOG=ON -DWITH_THRIFT=ON
+ -DWITH_RDMA=ON -DWITH_UBRING=ON
+ -DWITH_DEBUG_BTHREAD_SCHE_SAFETY=ON -DWITH_DEBUG_LOCK=ON
+ -DWITH_BTHREAD_TRACER=ON -DWITH_ASAN=ON
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- uses: ./.github/actions/install-all-dependencies
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: ccache
+ cache-key: cmake-${{ matrix.name }}
- - 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_UBRING=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
+ - name: Build
+ env:
+ CC: ${{ matrix.cc }}
+ CXX: ${{ matrix.cxx }}
+ CMAKE_OPTIONS: ${{ matrix.cmake-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
+ read -r -a cmake_options <<< "${CMAKE_OPTIONS}"
+ cmake -S . -B build -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
+ "${cmake_options[@]}"
+ cmake --build build -j ${{env.proc_num}}
- - 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_UBRING=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: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
- gcc-compile-with-make-protobuf:
+ compile-with-make-protobuf:
+ name: compile-with-make-protobuf (${{ matrix.compiler }}-${{ matrix.name
}})
runs-on: ubuntu-22.04
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ include:
+ - compiler: gcc
+ name: protobuf-3.5.1
+ protobuf-version: 3.5.1
+ protobuf-cpp-version: 3.5.1
+ protobuf-install-dir: /protobuf-3.5.1
+ cc: gcc
+ cxx: g++
+ - compiler: gcc
+ name: protobuf-3.12.4
+ protobuf-version: 3.12.4
+ protobuf-cpp-version: 3.12.4
+ protobuf-install-dir: /protobuf-3.12.4
+ cc: gcc
+ cxx: g++
+ - compiler: gcc
+ name: protobuf-21.12
+ protobuf-version: '21.12'
+ protobuf-cpp-version: 3.21.12
+ protobuf-install-dir: /protobuf-3.21.12
+ cc: gcc
+ cxx: g++
+ - compiler: clang
+ name: protobuf-3.5.1
+ protobuf-version: 3.5.1
+ protobuf-cpp-version: 3.5.1
+ protobuf-install-dir: /protobuf-3.5.1
+ cc: clang
+ cxx: clang++
+ - compiler: clang
+ name: protobuf-3.12.4
+ protobuf-version: 3.12.4
+ protobuf-cpp-version: 3.12.4
+ protobuf-install-dir: /protobuf-3.12.4
+ cc: clang
+ cxx: clang++
+ - compiler: clang
+ name: protobuf-21.12
+ protobuf-version: '21.12'
+ protobuf-cpp-version: 3.21.12
+ protobuf-install-dir: /protobuf-3.21.12
+ cc: clang
+ cxx: clang++
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- 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
+ extra-packages: ccache
+ - uses: ./.github/actions/setup-build-cache
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
+ kind: ccache
+ cache-key: ${{ matrix.compiler }}-make-${{ matrix.name }}
- - name: protobuf 21.12
+ - name: Build
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
+ protobuf-version: ${{ matrix.protobuf-version }}
+ protobuf-cpp-version: ${{ matrix.protobuf-cpp-version }}
+ protobuf-install-dir: ${{ matrix.protobuf-install-dir }}
+ config-brpc-options: >-
+ --cc=${{ matrix.cc }} --cxx=${{ matrix.cxx }} --werror
+
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
gcc-unittest-with-bazel:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
# Install redis-server/mysql-server so the integration tests that fork a
# real server (e.g. brpc_redis_unittest) actually run under bazel instead
# of skipping. Same shared action the make-based unittest jobs use.
@@ -128,7 +208,10 @@ jobs:
gcc-compile-with-bazel-all-options:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
- run: sudo apt-get update && sudo apt-get install -y libibverbs-dev
- name: root
run: |
@@ -162,40 +245,13 @@ jobs:
--define with_babylon_counter=true \
-- //...
- 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-unittest-with-bazel:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
# Install redis-server/mysql-server so the forked-server integration tests
# actually run under bazel (see gcc-unittest-with-bazel).
- uses: ./.github/actions/install-essential-dependencies
@@ -209,7 +265,10 @@ jobs:
clang-compile-with-bazel-all-options:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
- run: sudo apt-get update && sudo apt-get install -y libibverbs-dev
- name: root
run: |
@@ -248,8 +307,13 @@ jobs:
clang-unittest:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- uses: ./.github/actions/install-essential-dependencies
+ with:
+ extra-packages: ccache clang-12 lldb-12 lld-12 libgtest-dev cmake gdb
libstdc++6-11-dbg
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: ccache
- uses: ./.github/actions/init-ut-make-config
with:
options: --with-bthread-tracer --with-rdma
@@ -262,12 +326,20 @@ jobs:
run: |
cd test
sh ./run_tests.sh
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
clang-unittest-asan:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- uses: ./.github/actions/install-essential-dependencies
+ with:
+ extra-packages: ccache clang-12 lldb-12 lld-12 libgtest-dev cmake gdb
libstdc++6-11-dbg
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: ccache
- uses: ./.github/actions/init-ut-make-config
with:
options: --with-bthread-tracer --with-asan
@@ -284,6 +356,9 @@ jobs:
# too slowly, so they flake here (connection refused). Skip just those
under ASan; the
# redis codec/server tests still run, and the full suite runs in
clang-unittest.
GTEST_FILTER='-RedisTest.sanity:RedisTest.keys_with_spaces:RedisTest.incr_and_decr:RedisTest.by_components:RedisTest.auth'
sh ./run_tests.sh
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
clang-unittest-bazel-with-babylon-and-new-pb:
runs-on: ubuntu-22.04
@@ -294,7 +369,10 @@ jobs:
# honors USE_BAZEL_VERSION.
USE_BAZEL_VERSION: "8.3.1"
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
# Install redis-server/mysql-server so the forked-server integration tests
# actually run under bazel (see gcc-unittest-with-bazel).
- uses: ./.github/actions/install-essential-dependencies
diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml
index 36424708..0b595e27 100644
--- a/.github/workflows/ci-macos.yml
+++ b/.github/workflows/ci-macos.yml
@@ -22,7 +22,10 @@ jobs:
runs-on: macos-latest # https://github.com/actions/runner-images
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: ccache
- name: install dependences
run: |
@@ -41,11 +44,18 @@ jobs:
mkdir build && cd build && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DWITH_UBRING=ON -DCMAKE_PREFIX_PATH=$(brew --prefix protobuf@21) ..
make -j ${{env.proc_num}} && make clean
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
+
compile-with-make-cmake-protobuf29:
runs-on: macos-latest # https://github.com/actions/runner-images
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: ccache
- name: install dependences
run: |
@@ -63,8 +73,15 @@ jobs:
mkdir build && cd build && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DWITH_UBRING=ON -DCMAKE_PREFIX_PATH=$(brew --prefix protobuf@29) ..
make -j ${{env.proc_num}} && make clean
+ - name: Show ccache statistics
+ if: always()
+ run: ccache --show-stats
+
compile-with-bazel:
runs-on: macos-latest # https://github.com/actions/runner-images
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
+ - uses: ./.github/actions/setup-build-cache
+ with:
+ kind: bazel
- run: bazel build --verbose_failures -- //:brpc -//example/...
diff --git a/.github/workflows/license-eyes.yml
b/.github/workflows/license-eyes.yml
index 39699424..4ecba6a2 100644
--- a/.github/workflows/license-eyes.yml
+++ b/.github/workflows/license-eyes.yml
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
- uses: actions/checkout@v2
+ uses: actions/[email protected]
- name: Check License
uses: apache/[email protected]
env:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]