-
Notifications
You must be signed in to change notification settings - Fork 86
108 lines (103 loc) · 3.87 KB
/
macos.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
name: Celix MacOS
on:
push:
pull_request:
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:
runs-on: macOS-12
timeout-minutes: 120
steps:
- name: Checkout source code
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c #v3.3.0
- name: Install conan
run: |
brew install python ninja
pip3 install -U conan
- name: Setup Conan Profile
run: |
conan profile detect -f
- name: Conan Cache
id: cache-conan
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c #v3
env:
cache-name: cache-conan2-modules
with:
path: ${{ env.CONAN_HOME }}
key: ${{ runner.os }}-test-builder-${{ env.cache-name }}-Release-${{ hashFiles('conanfile.py') }}
restore-keys: ${{ runner.os }}-test-builder-${{ env.cache-name }}-Release-
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
run: |
echo timestamp=`date +"%Y-%m-%d-%H;%M;%S"` >> $GITHUB_OUTPUT
- name: ccache Cache
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c #v3
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 and Build
env:
CONAN_BUILD_OPTIONS: |
-o celix/*:enable_testing=True
-o celix/*:enable_address_sanitizer=True
-o celix/*:build_all=True
-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: |
conan build . -c tools.cmake.cmaketoolchain:generator=Ninja -pr:b default -pr:h default -s:b build_type=Release -s:h build_type=Release -of build ${CONAN_BUILD_OPTIONS} -b missing
- name: Test
run: |
cd build
source conanrun.sh
ctest --output-on-failure
source deactivate_conanrun.sh
macos-build-brew:
runs-on: macOS-latest
timeout-minutes: 120
steps:
- name: Checkout source code
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c #v3.3.0
- name: Install dependencies
run: |
brew install lcov jansson rapidjson libzip ccache ninja openssl@1.1
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
run: |
echo timestamp=`date +"%Y-%m-%d-%H;%M;%S"` >> $GITHUB_OUTPUT
- name: ccache Cache
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c #v3
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: |
-DENABLE_TESTING=ON
-DENABLE_ADDRESS_SANITIZER=ON
-DENABLE_TESTING_ON_CI=ON
-DCMAKE_BUILD_TYPE=Release
-DENABLE_CCACHE=ON
-G Ninja
run: |
mkdir build install
cd build
cmake ${BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX=../install ..
ninja && ninja install
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
export DYLD_LIBRARY_PATH=$(brew --prefix openssl@1.1)/lib/:$DYLD_LIBRARY_PATH:$(pwd)/utils:$(pwd)/framework:$(pwd)/dfi
ctest --output-on-failure