API cleanup #278
Workflow file for this run
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: | |
workflow_dispatch: | |
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: | |
formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get clang-format-11 | |
run: | | |
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections | |
echo 'DPkg::Use-Pty "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
echo 'DPkg::Progress-Fancy "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
sudo apt-get -qq update | |
sudo apt-get -qq install clang-format-11 | |
- name: Formatting | |
run: find src include test -iregex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|hxx\)$' -exec clang-format-11 -n -Werror {} \; | |
linux-x86_64: | |
needs: [ formatting ] | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
env: | |
BUILD_DIR: build-linux64-gcc10 | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
CMAKE_BUILD_TYPE: Debug | |
CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cmake/toolchain/linux64-gcc10.cmake | |
CMAKE_PREFIX_PATH: ${{ github.workspace }}/local/linux64-gcc10 | |
CMAKE_GENERATOR: Ninja | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Ubuntu dependencies | |
run: | | |
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections | |
echo 'DPkg::Use-Pty "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
echo 'DPkg::Progress-Fancy "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
sudo apt-get -qq update | |
sudo apt-get -qq install bison curl wget unzip xz-utils cmake ninja-build flex g++-10 | |
- name: Restore Libs | |
id: restore-libs | |
uses: actions/cache@v4 | |
with: | |
path: local/linux64-gcc10 | |
key: libs-linux64-${{ hashFiles('getlibs/**') }} | |
restore-keys: libs-linux64- | |
- name: Get library dependencies | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: | | |
echo "steps.restore-libs.outputs.cache-primary-key: ${{ steps.restore-libs.outputs.cache-primary-key }}" | |
echo "steps.restore-libs.outputs.cache-matched-key: ${{ steps.restore-libs.outputs.cache-matched-key }}" | |
./getlibs/getlibs.sh linux64-gcc10 | |
- name: Save Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
id: save-libs | |
uses: actions/cache/save@v4 | |
with: | |
path: local/linux64-gcc10 | |
key: ${{ steps.restore-libs.outputs.cache-primary-key }} | |
- name: Configure CMake build system | |
run: cmake -B "$BUILD_DIR" -S . -DSSP=ON -DUBSAN=ON -DASAN=ON -DLSAN=ON -DCMAKE_PREFIX_PATH=$PWD/local/linux64-gcc10 | |
- name: Build | |
run: cmake --build "$BUILD_DIR" --config Debug | |
- name: Test | |
run: ctest --test-dir "$BUILD_DIR" -C Debug | |
windows-x86_64: | |
needs: [ formatting ] | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
env: | |
BUILD_DIR: build-win64 | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
CROSSCOMPILING_EMULATOR: wine | |
CMAKE_BUILD_TYPE: Debug | |
CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cmake/toolchain/win64.cmake | |
CMAKE_PREFIX_PATH: ${{ github.workspace }}/local/win64 | |
CMAKE_GENERATOR: Ninja | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Ubuntu dependencies | |
run: | | |
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections | |
echo 'DPkg::Use-Pty "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
echo 'DPkg::Progress-Fancy "false";' | sudo tee -a /etc/apt/apt.conf.d/98-quiet | |
sudo apt-get -qq update | |
sudo apt-get -qq install bison curl wget unzip xz-utils cmake ninja-build flex g++-mingw-w64-x86-64-posix wine | |
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: Setup Wine | |
run: | | |
sudo apt-get -qq install wine-binfmt | |
sudo update-binfmts --disable cli # disable mono attempts to execute windows binaries | |
sudo update-binfmts --import /usr/share/binfmts/wine # enable wine to execute windows binaries | |
echo "WINARCH=win64" >> $GITHUB_ENV | |
echo "WINEDEBUG=fixme-all,-all" >> $GITHUB_ENV | |
echo "WINEPATH=\"$(./winepath-for x86_64-w64-mingw32)\"" >> $GITHUB_ENV | |
- name: Restore Libs | |
id: restore-libs | |
uses: actions/cache@v4 | |
with: | |
path: local/win64 | |
key: libs-win64-${{ hashFiles('getlibs/**') }} | |
restore-keys: libs-win64- | |
- name: Get library dependencies | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: | | |
echo "steps.restore-libs.outputs.cache-primary-key: ${{ steps.restore-libs.outputs.cache-primary-key }}" | |
echo "steps.restore-libs.outputs.cache-matched-key: ${{ steps.restore-libs.outputs.cache-matched-key }}" | |
./getlibs/getlibs.sh win64 | |
- name: Save Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
id: save-libs | |
uses: actions/cache/save@v4 | |
with: | |
path: local/win64 | |
key: ${{ steps.restore-libs.outputs.cache-primary-key }} | |
- name: Configure CMake build system | |
run: cmake -B "$BUILD_DIR" -S . -DSSP=ON -DCMAKE_PREFIX_PATH=$PWD/local/win64 | |
- name: Build | |
run: cmake --build "$BUILD_DIR" --config $CMAKE_BUILD_TYPE | |
- name: Test | |
run: ctest --test-dir "$BUILD_DIR" -C $CMAKE_BUILD_TYPE | |
darwin-brew-gcc10: | |
needs: [ formatting ] | |
strategy: | |
fail-fast: false | |
runs-on: macos-11 | |
env: | |
BUILD_DIR: build-darwin-brew-gcc10 | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
CMAKE_BUILD_TYPE: Debug | |
CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cmake/toolchain/darwin-brew-gcc10.cmake | |
CMAKE_PREFIX_PATH: ${{ github.workspace }}/local/darwin-brew-gcc10 | |
CMAKE_GENERATOR: Ninja | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '13.2.1' | |
- name: Get Home Brew dependencies | |
run: brew install -q cmake ninja gcc@10 flex bison wget curl coreutils automake autoconf libtool gnu-sed gawk | |
- name: Restore Libs | |
id: restore-libs | |
uses: actions/cache@v4 | |
with: | |
path: local/darwin-brew-gcc10 | |
key: libs-darwin-brew-gcc10-${{ hashFiles('getlibs/**') }} | |
restore-keys: libs-darwin-brew-gcc10 | |
- name: Get library dependencies | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: | | |
echo "steps.restore-libs.outputs.cache-primary-key: ${{ steps.restore-libs.outputs.cache-primary-key }}" | |
echo "steps.restore-libs.outputs.cache-matched-key: ${{ steps.restore-libs.outputs.cache-matched-key }}" | |
./getlibs/getlibs.sh darwin-brew-gcc10 | |
- name: Store Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
id: save-libs | |
uses: actions/cache/save@v4 | |
with: | |
path: local/darwin-brew-gcc10 | |
key: ${{ steps.restore-libs.outputs.cache-primary-key }} | |
- name: Configure CMake build system | |
run: cmake -B "$BUILD_DIR" -S . -DSSP=ON -DUBSAN=ON -DASAN=ON -DLSAN=ON -DCMAKE_PREFIX_PATH=$PWD/local/darwin-brew-gcc10 | |
- name: Build | |
run: cmake --build "$BUILD_DIR" --config $CMAKE_BUILD_TYPE | |
- name: Test | |
run: ctest --test-dir "$BUILD_DIR" -C $CMAKE_BUILD_TYPE | |
# build-nix: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - 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@v4 | |
# - 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@v4 | |
# - 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@v4 | |
# - 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) |