From 8ca30a15fb2081110dbb8a7be153a8cd117af4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Fonseca?= Date: Fri, 2 Feb 2024 10:03:32 +0000 Subject: [PATCH] feat: cache test coverage build --- .github/workflows/create-coverage-report.yml | 30 +++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-coverage-report.yml b/.github/workflows/create-coverage-report.yml index 2a5dea6c3..fc0b7c7ca 100644 --- a/.github/workflows/create-coverage-report.yml +++ b/.github/workflows/create-coverage-report.yml @@ -4,6 +4,9 @@ on: [push] env: BUILD_TYPE: Debug + CCACHE_BASEDIR: ${{ github.workspace }} + CCACHE_DIR: "${{ github.workspace }}/.ccache" + CCACHE_COMPILERTYPE: gcc jobs: build: @@ -17,7 +20,23 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install xorg-dev libglu1-mesa-dev gcc-11 g++-11 lcov + sudo apt-get install xorg-dev libglu1-mesa-dev gcc-11 g++-11 ccache lcov + + - name: Get timestamp + shell: bash + id: ccache_vars + run: | + echo "timestamp=$(date +%s)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + with: + path: ${{ env.CCACHE_DIR }} + key: ccache-${{ env.CCACHE_COMPILERTYPE }}-${{ env.BUILD_TYPE }}-${{ github.ref }}-${{ steps.ccache_vars.outputs.timestamp }} + restore-keys: | + ccache-${{ env.CCACHE_COMPILERTYPE }}-${{ env.BUILD_TYPE }}-${{ github.ref }}- + ccache-${{ env.CCACHE_COMPILERTYPE }}-${{ env.BUILD_TYPE }}- + ccache-${{ env.CCACHE_COMPILERTYPE }}- + ccache- - name: Configure CMake run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_COVERAGE=ON -DBUILD_CORE_TESTS=ON -DBUILD_ENGINE_TESTS=ON -DUSE_CLANG_TIDY=OFF @@ -26,9 +45,18 @@ jobs: CC: gcc-11 CXX: g++-11 + - name: CCache Prolog + run: |- + ccache -s # Print current cache stats + ccache -z # Zero cache entry + - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target coverage + - name: CCache Epilog + run: | + ccache -s # Print current cache stats + - name: Upload uses: codecov/codecov-action@v4 with: