This is an automated email from the ASF dual-hosted git repository.
pengzheng pushed a commit to branch feature/614-github-cache-build-deps
in repository https://gitbox.apache.org/repos/asf/celix.git
The following commit(s) were added to
refs/heads/feature/614-github-cache-build-deps by this push:
new acc4ba6a Add Conan and ccache cache to coverage and macos-build.
acc4ba6a is described below
commit acc4ba6a5ef5bcb41f26cb375c9f50841dc61daf
Author: PengZheng <[email protected]>
AuthorDate: Wed Aug 30 22:15:54 2023 +0800
Add Conan and ccache cache to coverage and macos-build.
---
.github/workflows/conan_create.yml | 2 +-
.github/workflows/coverage.yml | 30 +++++++++++++++++++++++++
.github/workflows/macos.yml | 46 +++++++++++++++++++++++++++++++++++++-
3 files changed, 76 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/conan_create.yml
b/.github/workflows/conan_create.yml
index 93a1612a..d0786b52 100644
--- a/.github/workflows/conan_create.yml
+++ b/.github/workflows/conan_create.yml
@@ -91,7 +91,7 @@ jobs:
run: |
conan profile new default --detect
conan profile update settings.build_type=Release default
- - name: Using the builtin GitHub Cache Action for .conan
+ - name: Conan Cache
id: cache-conan
uses: actions/cache@v1
env:
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 6d4e85d8..4052dbd6 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -2,6 +2,13 @@ name: Celix Coverage
on: [push, pull_request]
+env:
+ CONAN_USER_HOME: "${{ github.workspace }}/release/"
+ CONAN_USER_HOME_SHORT: "${{ github.workspace }}/release/short"
+ CONAN_HOME: "${{ github.workspace }}/release/"
+ CCACHE_DIR: "${{ github.workspace }}/.ccache"
+ CCACHE_SLOPPINESS: include_file_ctime,include_file_mtime
+
jobs:
coverage:
runs-on: ubuntu-20.04
@@ -19,6 +26,28 @@ jobs:
conan profile update settings.build_type=Debug default
#Note no backwards compatiblity for gcc5 needed, setting libcxx to
c++11.
conan profile update settings.compiler.libcxx=libstdc++11 default
+ - name: Conan Cache
+ id: cache-conan
+ uses: actions/cache@v1
+ env:
+ cache-name: cache-conan2-modules
+ with:
+ path: ${{ env.CONAN_HOME }}
+ key: ${{ runner.os }}-gcov-builder-${{ env.cache-name }}-${{
hashFiles('conanfile.py') }}
+ restore-keys: ${{ runner.os }}-gcov-builder-${{ env.cache-name }}-
+ - name: Prepare ccache timestamp
+ id: ccache_cache_timestamp
+ shell: cmake -P {0} >> $GITHUB_OUTPUT
+ run: |
+ string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
+ message("timestamp=${current_date}")
+ - name: ccache Cache
+ uses: actions/cache@v1
+ with:
+ path: ${{ env.CCACHE_DIR }}
+ key: ${{ runner.os }}-gcov-ccache-${{
steps.ccache_cache_timestamp.outputs.timestamp }}
+ restore-keys: |
+ ${{ runner.os }}-gcov-ccache-
- name: Install Dependencies
env:
CONAN_BUILD_OPTIONS: |
@@ -28,6 +57,7 @@ jobs:
-o celix:enable_testing_for_cxx14=True
-o celix:enable_testing_dependency_manager_for_cxx11=True
-o celix:enable_testing_on_ci=True
+ -o celix:enable_ccache=True
run: |
#force require libcurl 7.64.1, due to a sha256 verify issue in
libcurl/7.87.0
conan install . celix/ci -pr:b default -pr:h default -if build
${CONAN_BUILD_OPTIONS} -b missing -b cpputest --require-override=libcurl/7.64.1
--require-override=openssl/1.1.1s
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index d20ac490..93466f63 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -6,6 +6,13 @@ on:
schedule:
- cron: '0 0 * * *'
+env:
+ CONAN_USER_HOME: "${{ github.workspace }}/release/"
+ CONAN_USER_HOME_SHORT: "${{ github.workspace }}/release/short"
+ CONAN_HOME: "${{ github.workspace }}/release/"
+ CCACHE_DIR: "${{ github.workspace }}/.ccache"
+ CCACHE_SLOPPINESS: include_file_ctime,include_file_mtime
+
jobs:
macos-build-conan:
@@ -22,6 +29,28 @@ jobs:
run: |
conan profile new default --detect
conan profile update settings.build_type=Release default
+ - name: Conan Cache
+ id: cache-conan
+ uses: actions/cache@v1
+ env:
+ cache-name: cache-conan-modules
+ with:
+ path: ${{ env.CONAN_USER_HOME }}
+ key: ${{ runner.os }}-test-builder-${{ env.cache-name }}-${{
hashFiles('conanfile.py') }}
+ restore-keys: ${{ runner.os }}-test-builder-${{ env.cache-name }}-
+ - name: Prepare ccache timestamp
+ id: ccache_cache_timestamp
+ shell: cmake -P {0} >> $GITHUB_OUTPUT
+ run: |
+ string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
+ message("timestamp=${current_date}")
+ - name: ccache Cache
+ uses: actions/cache@v1
+ with:
+ path: ${{ env.CCACHE_DIR }}
+ key: ${{ runner.os }}-test-ccache-Release-${{
steps.ccache_cache_timestamp.outputs.timestamp }}
+ restore-keys: |
+ ${{ runner.os }}-test-ccache-Release-
- name: Install Dependencies
env:
CONAN_BUILD_OPTIONS: |
@@ -33,6 +62,7 @@ jobs:
-o celix:enable_cmake_warning_tests=True
-o celix:enable_testing_on_ci=True
-o celix:framework_curlinit=False
+ -o celix:enable_ccache=True
run: |
#force require libcurl 7.64.1, due to a sha256 verify issue in
libcurl/7.87.0
conan install . celix/ci -c
tools.cmake.cmaketoolchain:generator=Ninja -pr:b default -pr:h default -if
build ${CONAN_BUILD_OPTIONS} -b missing -b cpputest
--require-override=libcurl/7.64.1 --require-override=openssl/1.1.1s
@@ -56,7 +86,20 @@ jobs:
- name: Install dependencies
run: |
brew update
- brew install lcov zeromq czmq cpputest jansson rapidjson libzip
+ brew install lcov zeromq czmq cpputest jansson rapidjson libzip
ccache
+ - name: Prepare ccache timestamp
+ id: ccache_cache_timestamp
+ shell: cmake -P {0} >> $GITHUB_OUTPUT
+ run: |
+ string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
+ message("timestamp=${current_date}")
+ - name: ccache Cache
+ uses: actions/cache@v1
+ with:
+ path: ${{ env.CCACHE_DIR }}
+ key: ${{ runner.os }}-brew-test-ccache-Release-${{
steps.ccache_cache_timestamp.outputs.timestamp }}
+ restore-keys: |
+ ${{ runner.os }}-brew-test-ccache-Release-
- name: Build
env:
BUILD_OPTIONS: |
@@ -66,6 +109,7 @@ jobs:
-DENABLE_ADDRESS_SANITIZER=ON
-DENABLE_TESTING_ON_CI=ON
-DCMAKE_BUILD_TYPE=Release
+ -DENABLE_CCACHE=ON
run: |
mkdir build install
cd build