name: CI on: push: branches: [ master ] paths-ignore: - '**.md' - 'LICENSE' pull_request: types: [opened, synchronize] paths-ignore: - '**.md' - 'LICENSE' jobs: linux: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, 'ci skip')" strategy: fail-fast: false matrix: mem_check: - ENABLE_VALGRIND - ENABLE_SANITIZERS - NONE_MEM_CHECK compiler: - GCC - CLANG steps: - uses: actions/checkout@v2 - name: install build dependencies run: | sudo apt-get update sudo apt-get install clang-14 valgrind - name: build and test shell: bash run: | if [ "${{ matrix.mem_check }}" == "ENABLE_VALGRIND" ]; then EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=ON -DENABLE_SAFE_STACK=ON -DENABLE_SANITIZERS=OFF" elif [ "${{ matrix.mem_check }}" == "ENABLE_SANITIZERS" ]; then EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=OFF -DENABLE_SAFE_STACK=OFF -DENABLE_SANITIZERS=ON" else EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=OFF -DENABLE_SAFE_STACK=OFF -DENABLE_SANITIZERS=OFF" fi if [ "${{ matrix.compiler }}" == "GCC" ]; then export CC=gcc else export CC=clang fi #run build and test JOBS=20 export CTEST_PARALLEL_LEVEL=$JOBS export CTEST_OUTPUT_ON_FAILURE=1 mkdir -p build cd build echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS) cmake --build . make make test macos: runs-on: macos-latest if: "!contains(github.event.head_commit.message, 'ci skip')" strategy: fail-fast: false matrix: mem_check: - ENABLE_VALGRIND - ENABLE_SANITIZERS - NONE_MEM_CHECK compiler: - GCC - CLANG steps: - uses: actions/checkout@v2 - name: build and test shell: bash run: | if [ "${{ matrix.mem_check }}" == "ENABLE_VALGRIND" ]; then EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=ON -DENABLE_SAFE_STACK=ON -DENABLE_SANITIZERS=OFF" elif [ "${{ matrix.mem_check }}" == "ENABLE_SANITIZERS" ]; then EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=OFF -DENABLE_SAFE_STACK=OFF -DENABLE_SANITIZERS=ON" else EVENT_CMAKE_OPTIONS="-DENABLE_CJSON_UTILS=ON -DENABLE_VALGRIND=OFF -DENABLE_SAFE_STACK=OFF -DENABLE_SANITIZERS=OFF" fi if [ "${{ matrix.compiler }}" == "GCC" ]; then export CC=gcc else export CC=clang fi #run build and test JOBS=20 export CTEST_PARALLEL_LEVEL=$JOBS export CTEST_OUTPUT_ON_FAILURE=1 mkdir -p build cd build echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS) cmake --build . make make test