| 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-15 |
| timeout-minutes: 120 |
| steps: |
| - name: Checkout source code |
| uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c #v3.3.0 |
| - name: Set up Python |
| uses: actions/setup-python@7f4fc3e22c37d6ff65e88745f38bd3157c663f7c #v4.9.1 |
| with: |
| python-version: '3.x' |
| - name: Install Conan |
| run: pip install conan |
| - name: Setup Conan Profile |
| run: | |
| conan profile detect -f |
| echo "[tool_requires]" >> `conan profile path default` |
| echo "cmake/3.26.4" >> `conan profile path default` |
| - name: Conan Cache |
| id: cache-conan |
| uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf #v4.2.2 |
| 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@d4323d4df104b026a6aa633fdb11d772146be0bf #v4.2.2 |
| 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_benchmarking=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 |
| -o mosquitto/*:broker=True |
| -o *:shared=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 ${CONAN_BUILD_OPTIONS} -b missing |
| - name: Test |
| run: ctest --preset conan-release --output-on-failure -j1 |
| |
| macos-build-brew: |
| runs-on: macOS-15 |
| 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 google-benchmark libuv |
| - 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@d4323d4df104b026a6aa633fdb11d772146be0bf #v4.2.2 |
| 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_BENCHMARKING=ON |
| -DENABLE_ADDRESS_SANITIZER=ON |
| -DENABLE_TESTING_ON_CI=ON |
| -DCMAKE_BUILD_TYPE=Release |
| -DENABLE_CCACHE=ON |
| -DCMAKE_POLICY_VERSION_MINIMUM=3.5 |
| -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 |