Merge pull request #58 from e-dong/stable #9
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
# Adapted from https://github.com/catchorg/Catch2/blob/devel/.github/workflows/linux-simple-builds.yml | |
name: Linux build and test | |
on: | |
push: | |
paths-ignore: | |
- "docs" | |
- "docker" | |
pull_request: | |
paths: | |
- "docs" | |
- "docker" | |
jobs: | |
test-arm: | |
timeout-minutes: 30 | |
runs-on: [ self-hosted, ARM64 ] # self-hosted, using Oracle free tier instance | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Prepare environment | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y \ | |
g++-11 \ | |
cmake \ | |
ninja-build \ | |
libboost-locale-dev libboost-thread-dev libboost-filesystem-dev libboost-log-dev libboost-stacktrace-dev \ | |
libssl-dev \ | |
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ | |
libwayland-dev libwayland-server0 libinput-dev libxkbcommon-dev libgbm-dev \ | |
libcurl4-openssl-dev \ | |
libpulse-dev \ | |
libevdev-dev \ | |
libudev-dev \ | |
libdrm-dev \ | |
libpci-dev | |
- name: Setup Rust | |
uses: ATiltedTree/setup-rust@v1 | |
with: | |
rust-version: stable | |
- name: Configure build | |
working-directory: ${{runner.workspace}} | |
env: | |
CXX: g++-11 | |
run: | | |
cmake -Bbuild \ | |
-H$GITHUB_WORKSPACE \ | |
-DCMAKE_BUILD_TYPE=Debug \ | |
-DCMAKE_CXX_EXTENSIONS=OFF \ | |
-DCMAKE_CXX_STANDARD=17 \ | |
-DTEST_UINPUT=OFF \ | |
-DTEST_DOCKER=ON \ | |
-DLINK_RUST_WAYLAND=ON \ | |
-DTEST_RUST_WAYLAND=OFF \ | |
-DTEST_NVIDIA=OFF \ | |
-DCARGO_TARGET_BUILD=aarch64-unknown-linux-gnu \ | |
-G Ninja | |
- name: Build tests + lib | |
working-directory: ${{runner.workspace}}/build | |
run: ninja -j 4 wolftests | |
- name: Run tests | |
working-directory: ${{runner.workspace}}/build/tests | |
run: ./wolftests | |
test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
cxx: | |
- g++-10 | |
- g++-12 | |
- clang++-11 | |
- clang++-14 | |
build_type: [ Release ] | |
shared: [ true, false ] | |
std: [ 17 ] | |
include: | |
- cxx: g++-10 | |
other_pkgs: [ g++-10 ] | |
- cxx: g++-12 | |
other_pkgs: [ g++-12 ] | |
- cxx: clang++-11 | |
other_pkgs: [ clang-11 ] | |
- cxx: clang++-14 | |
other_pkgs: [ clang-14 ] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Prepare environment | |
# ubuntu-latest breaks without libunwind-dev, | |
# see: https://github.com/actions/runner-images/issues/6399#issuecomment-1286050292 | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libunwind-dev | |
sudo apt-get install -y \ | |
ninja-build \ | |
libboost-locale-dev libboost-thread-dev libboost-filesystem-dev libboost-log-dev libboost-stacktrace-dev \ | |
libssl-dev \ | |
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ | |
libwayland-dev libwayland-server0 libinput-dev libxkbcommon-dev libgbm-dev \ | |
libcurl4-openssl-dev \ | |
libpulse-dev \ | |
libevdev-dev \ | |
libudev-dev \ | |
libdrm-dev \ | |
libpci-dev \ | |
${{ join(matrix.other_pkgs, ' ') }} | |
- name: Setup Rust | |
uses: ATiltedTree/setup-rust@v1 | |
with: | |
rust-version: stable | |
- name: Configure build | |
working-directory: ${{runner.workspace}} | |
env: | |
CXX: ${{matrix.cxx}} | |
CXXFLAGS: ${{matrix.cxxflags}} | |
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}. | |
# This is important | |
run: | | |
cmake -Bbuild \ | |
-H$GITHUB_WORKSPACE \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
-DCMAKE_CXX_STANDARD=${{ matrix.std }} \ | |
-DCMAKE_CXX_EXTENSIONS=OFF \ | |
-DBUILD_SHARED_LIBS=${{ matrix.shared }} \ | |
-DCATCH_DEVELOPMENT_BUILD=ON \ | |
-DTEST_UINPUT=OFF \ | |
-DTEST_DOCKER=OFF \ | |
-DLINK_RUST_WAYLAND=ON \ | |
-DTEST_RUST_WAYLAND=OFF \ | |
-DTEST_NVIDIA=OFF \ | |
-G Ninja | |
- name: Build tests + lib | |
working-directory: ${{runner.workspace}}/build | |
run: ninja -j 2 wolftests | |
- name: Run tests | |
working-directory: ${{runner.workspace}}/build/tests | |
run: ./wolftests |