This repository has been archived by the owner on Mar 5, 2024. It is now read-only.
cmake: make tests optional #212
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
on: [push, pull_request] | |
jobs: | |
test_on_ubuntu: | |
runs-on: ubuntu-latest | |
name: g++-10 | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Update package repositories | |
run: sudo apt-get update | |
- name: Install dependencies | |
run: > | |
sudo apt-get install -q -y | |
gcc-10-aarch64-linux-gnu | |
g++-10-aarch64-linux-gnu | |
ninja-build | |
qemu-user | |
- name: Checkout qemu | |
uses: actions/checkout@v3 | |
with: | |
repository: qemu/qemu | |
ref: v8.1.2 | |
path: externals/qemu | |
- name: Build qemu | |
working-directory: externals/qemu | |
run: | | |
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build | |
mkdir build | |
cd build | |
../configure --target-list=aarch64-linux-user | |
make -j4 qemu-aarch64 | |
- name: Checkout Catch2 v3 repo | |
uses: actions/checkout@v3 | |
with: | |
repository: catchorg/Catch2 | |
ref: v3.2.0 | |
path: externals/catch | |
- name: Configure CMake | |
env: | |
CC: aarch64-linux-gnu-gcc-10 | |
CXX: aarch64-linux-gnu-g++-10 | |
run: > | |
cmake | |
-B ${{github.workspace}}/build | |
-H. | |
-GNinja | |
-DOAKNUT_USE_BUNDLED_CATCH=ON | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: ninja | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
run: ../externals/qemu/build/qemu-aarch64 -L /usr/aarch64-linux-gnu ./oaknut-tests -d yes | |
test_on_windows: | |
runs-on: windows-latest | |
name: msvc-arm64 | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Checkout Catch2 v3 repo | |
uses: actions/checkout@v3 | |
with: | |
repository: catchorg/Catch2 | |
ref: v3.2.0 | |
path: externals/catch | |
- name: Setup msvc-arm64 environment | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64_arm64 | |
- name: Configure CMake | |
run: > | |
cmake | |
-B ${{github.workspace}}/build | |
-GNinja | |
-DOAKNUT_USE_BUNDLED_CATCH=ON | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . --config Release | |
test_on_macos: | |
runs-on: macos-latest | |
name: macos-arm64 | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Checkout Catch2 v3 repo | |
uses: actions/checkout@v3 | |
with: | |
repository: catchorg/Catch2 | |
ref: v3.2.0 | |
path: externals/catch | |
- name: Install dependencies | |
run: | | |
brew install ninja | |
- name: Configure CMake | |
run: > | |
cmake | |
-B ${{github.workspace}}/build | |
-GNinja | |
-DCMAKE_OSX_ARCHITECTURES=arm64 | |
-DOAKNUT_USE_BUNDLED_CATCH=ON | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . --config Release | |
test_on_freebsd: | |
runs-on: ubuntu-latest | |
name: freebsd-arm64 | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Build and Test | |
uses: cross-platform-actions/action@v0.19.1 | |
with: | |
operating_system: freebsd | |
architecture: arm64 | |
version: '13.2' | |
shell: bash | |
run: | | |
pwd | |
sudo pkg update | |
sudo pkg install -y catch2 cmake ninja | |
cmake -B ${{github.workspace}}/build -GNinja | |
cd build | |
cmake --build . --config Release | |
./oaknut-tests -d yes | |
test_on_openbsd: | |
runs-on: ubuntu-latest | |
name: openbsd-arm64 | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Build and Test | |
uses: cross-platform-actions/action@v0.19.1 | |
with: | |
operating_system: openbsd | |
architecture: arm64 | |
version: '7.3' | |
shell: bash | |
run: | | |
pwd | |
sudo pkg_add catch2 cmake ninja | |
cmake -B ${{github.workspace}}/build -GNinja | |
cd build | |
cmake --build . --config Release | |
./oaknut-tests -d yes "~[slow]" | |
test_on_android: | |
runs-on: ubuntu-latest | |
name: android | |
steps: | |
- name: Checkout oaknut repo | |
uses: actions/checkout@v3 | |
- name: Update package repositories | |
run: sudo apt-get update | |
- name: Install dependencies | |
run: sudo apt-get install -q -y ninja-build | |
- name: Checkout Catch2 v3 repo | |
uses: actions/checkout@v3 | |
with: | |
repository: catchorg/Catch2 | |
ref: v3.2.0 | |
path: externals/catch | |
- name: Configure CMake | |
run: > | |
cmake | |
-B ${{github.workspace}}/build | |
-H. | |
-GNinja | |
-DANDROID_ABI=arm64-v8a | |
-DANDROID_PLATFORM=30 | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake | |
-DOAKNUT_USE_BUNDLED_CATCH=ON | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . --config Release |