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]

Reply via email to