Add CMake option to enable assertions irrespective CMAKE_BUILD_TYPE #209
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Post-commit check | |
on: [push] | |
jobs: | |
generate-invokers: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
steps: | |
- name: Perform checkout | |
uses: actions/checkout@v3 | |
- name: Install Java 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
cache: 'sbt' | |
- name: Generate invokers | |
run: ./update_invokers.sh | |
- name: Save invokers as artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: invokers | |
path: runtime/generated | |
build-and-test: | |
timeout-minutes: 10 | |
needs: generate-invokers | |
env: | |
cxx_compilers: "{'gcc': 'g++', 'clang': 'clang++', 'afl-clang-fast': 'afl-clang-fast++'}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04] | |
compiler: [clang, gcc] | |
extra_cflags: [''] | |
extra_cmake_opts: [''] | |
extra_ubuntu_packages: [''] | |
include: | |
- os: ubuntu-22.04 | |
compiler: clang | |
extra_cflags: "-fsanitize=undefined" | |
- os: ubuntu-22.04 | |
compiler: clang | |
extra_cflags: "-fsanitize=address" | |
- os: ubuntu-22.04 | |
compiler: afl-clang-fast | |
extra_cmake_opts: '-DKBDYSCH_PERFORM_AFL_TESTS=ON' | |
extra_ubuntu_packages: afl++ | |
- os: ubuntu-22.04 | |
compiler: clang | |
extra_cmake_opts: '-G Ninja' | |
extra_ubuntu_packages: ninja-build | |
runs-on: ${{matrix.os}} | |
steps: | |
- name: Perform checkout | |
uses: actions/checkout@v3 | |
- name: Disable third-party software | |
# I would like to check the specific versions of build tools (especially CMake) | |
run: sudo mv /usr/local /usr/local.orig | |
- name: Install other dependencies | |
run: sudo apt-get install --no-install-recommends -y cmake libpth-dev clang ${{matrix.extra_ubuntu_packages}} | |
- name: Print summary | |
run: | | |
echo "OS: ${{matrix.os}}, compiler: ${{matrix.compiler}}" | |
echo "Extra Ubuntu packages: [${{matrix.extra_ubuntu_packages}}]" | |
echo "Extra CFLAGS: [${{matrix.extra_cflags}}]" | |
echo "Extra CMake options: [${{matrix.extra_cmake_opts}}]" | |
gcc --version | |
clang --version | |
afl-clang-fast || true | |
cmake --version | |
- name: Restore invokers from artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: invokers | |
path: runtime/generated | |
- name: Run CMake | |
run: | | |
mkdir build | |
cd build | |
cmake .. -DUSE_LKL=OFF -DUSE_DUMMY_LKL=ON \ | |
-DCMAKE_C_COMPILER=${{matrix.compiler}} \ | |
-DCMAKE_CXX_COMPILER=${{ fromJSON(env.cxx_compilers)[matrix.compiler] }} \ | |
-DCMAKE_C_FLAGS="${{matrix.extra_cflags}}" \ | |
-DCMAKE_CXX_FLAGS="${{matrix.extra_cflags}}" \ | |
${{matrix.extra_cmake_opts}} | |
- name: Build harnesses | |
run: cmake --build ./build | |
- name: Run tests | |
run: cd build && ctest --output-on-failure --test-output-size-failed 65536 |