| 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-11 |
| timeout-minutes: 120 |
| steps: |
| - name: Checkout source code |
| uses: actions/checkout@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@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@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@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@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 |