Skip to content

Merge pull request #58 from e-dong/stable #9

Merge pull request #58 from e-dong/stable

Merge pull request #58 from e-dong/stable #9

# 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