2020-08-27 15:26:04 +03:00
|
|
|
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
|
2023-07-04 12:02:03 +03:00
|
|
|
sudo apt-get install clang-14 valgrind
|
2020-08-27 15:26:04 +03:00
|
|
|
- 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
|