Merge pr #75: refactor test for feature checker #272
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: Build and Test | |
on: | |
push: | |
branches: [ main ] | |
paths: | |
- '**.h' | |
- '**.c' | |
- '**.hpp' | |
- '**.cpp' | |
- '**.y' | |
- '**.l' | |
- '**.sh' | |
- '**.cmake' | |
- '**CMakeLists.txt' | |
pull_request: | |
branches: [ main ] | |
paths: | |
- '**.h' | |
- '**.c' | |
- '**.hpp' | |
- '**.cpp' | |
- '**.y' | |
- '**.l' | |
- '**.sh' | |
- '**.cmake' | |
- '**.xml' | |
- '**CMakeLists.txt' | |
jobs: | |
format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get clang-format-11 | |
run: | | |
export DEBIAN_FRONTEND=noninteractive | |
sudo apt-get -qy update | |
sudo apt-get -qy install clang-format-11 | |
- name: Format | |
run: find src include test -iregex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|hxx\)$' -exec clang-format-11 -n -Werror {} \; | |
build-linux64: | |
needs: [ format ] | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set default environment variables | |
run: | | |
echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV" | |
echo "BUILD_DIR=build-linux64-gcc10" >> "$GITHUB_ENV" | |
echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV" | |
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | |
- name: Get Ubuntu dependencies | |
run: | | |
sudo apt-get -qy update | |
sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex libc6-dev g++-10 | |
- name: Get library dependencies | |
run: ./getlibs/getlibs.sh linux64-gcc10 | |
- name: Configure CMake build system | |
run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/linux64-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/linux64-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja | |
- name: Build | |
run: cmake --build $BUILD_DIR | |
- name: Test | |
run: (cd $BUILD_DIR ; ctest) | |
build-win64: | |
needs: [ format ] | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set default environment variables | |
run: | | |
echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV" | |
echo "BUILD_DIR=build-win64" >> "$GITHUB_ENV" | |
echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV" | |
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | |
- name: Get Ubuntu dependencies | |
run: | | |
sudo apt-get -qy update | |
sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex g++-mingw-w64-x86-64-posix wine wine64 | |
sudo apt-get -qy install wine-binfmt | |
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix | |
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix | |
- name: Get library dependencies | |
run: ./getlibs/getlibs.sh win64 | |
- name: Configure CMake build system | |
run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/win64.cmake -DCMAKE_PREFIX_PATH=$PWD/local/win64 -DCMAKE_BUILD_TYPE=Debug -B $BUILD_DIR -S . -G Ninja | |
- name: Build | |
run: cmake --build $BUILD_DIR | |
- name: Test | |
run: (cd $BUILD_DIR ; ctest) | |
# build-macos: | |
# needs: [ format ] | |
# strategy: | |
# fail-fast: false | |
# runs-on: macos-11 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: maxim-lobanov/setup-xcode@v1 | |
# with: | |
# xcode-version: '13.2.1' | |
# - name: Get Home Brew dependencies | |
# run: brew install -q cmake ninja bison libxml2 doctest | |
# - name: Set environment variables | |
# run: | | |
# echo "BUILD_DIR=build-darwin" >> "$GITHUB_ENV" | |
# echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | |
# - name: Configure CMake build system | |
# run: | | |
# export PATH="/usr/local/bin:$PATH" | |
# export PATH="/usr/local/opt/bison/bin:$PATH" | |
# export LDFLAGS="-L/usr/local/opt/bison/lib $LDFLAGS" | |
# export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig" | |
# export PATH="/usr/local/opt/libxml2/bin:$PATH" | |
# export LDFLAGS="-L/usr/local/opt/libxml2/lib $LDFLAGS" | |
# export CPPFLAGS="-I/usr/local/opt/libxml2/include $CPPFLAGS" | |
# cmake -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja | |
# - name: Build | |
# run: cmake --build $BUILD_DIR | |
# - name: Test | |
# run: (cd $BUILD_DIR ; ctest) | |
# build-macos-brew-gcc10: | |
# needs: [ format ] | |
# strategy: | |
# fail-fast: false | |
# runs-on: macos-11 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: maxim-lobanov/setup-xcode@v1 | |
# with: | |
# xcode-version: '13.2.1' | |
# - name: Get brew dependencies | |
# run: brew -q install bash coreutils gnu-sed gawk wget gcc@10 cmake automake autoconf libtool flex bison ninja | |
# - name: Set default environment variables | |
# run: | | |
# echo "BUILD_DIR=build-darwin-brew-gcc10" >> "$GITHUB_ENV" | |
# echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | |
# - name: Get library dependencies | |
# run: ./getlibs/getlibs.sh darwin-brew-gcc10 | |
# - name: Configure CMake build system | |
# run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/darwin-brew-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/darwin-brew-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja | |
# - name: Build | |
# run: cmake --build $BUILD_DIR | |
# - name: Test | |
# run: (cd $BUILD_DIR ; ctest) | |
# build-nix: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: cachix/install-nix-action@v15 | |
# with: | |
# nix_path: nixpkgs=channel:nixos-unstable | |
# - name: Build and test | |
# run: nix build | |
# build-nix-mac: | |
# runs-on: macos-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: cachix/install-nix-action@v15 | |
# with: | |
# nix_path: nixpkgs=channel:nixos-unstable | |
# - name: Build and test | |
# run: nix build | |
# build-nix-cross: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: cachix/install-nix-action@v15 | |
# with: | |
# nix_path: nixpkgs=channel:nixos-unstable | |
# - name: Build and test | |
# run: nix build .\#utapWindows.x86_64-linux | |
# build-linux64: | |
# needs: [ format ] | |
# strategy: | |
# fail-fast: false | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Set default environment variables | |
# run: | | |
# echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV" | |
# echo "BUILD_DIR=build-linux64-gcc10" >> "$GITHUB_ENV" | |
# echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV" | |
# echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | |
# - name: Get Ubuntu dependencies | |
# run: | | |
# sudo apt-get -qy update | |
# sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex libc6-dev g++-10 | |
# - name: Get library dependencies | |
# run: ./getlibs/getlibs.sh linux64-gcc10 | |
# - name: Configure CMake build system | |
# run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/linux64-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/linux64-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja | |
# - name: Build | |
# run: cmake --build $BUILD_DIR | |
# - name: Test | |
# run: (cd $BUILD_DIR ; ctest) |