CI #10
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: CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
schedule: | |
- cron: '0 18 1 * *' | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++-multilib scons | |
- name: Build | |
run: ./build | |
- name: Test | |
run: ./test | |
linux-asan: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++ scons | |
- name: Build | |
run: ./build arch=x64 sanitize=address | |
- name: Test | |
run: ./out/ReleaseASanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
env: | |
ASAN_OPTIONS: halt_on_error=1 | |
linux-msan: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install clang scons | |
- name: Build | |
run: ./build arch=x64 sanitize=memory cxx_host=clang++ | |
- name: Test | |
run: ./out/ReleaseMSanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
env: | |
MSAN_OPTIONS: halt_on_error=1 | |
linux-tsan: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++ scons | |
- name: Build | |
run: ./build arch=x64 sanitize=thread | |
- name: Test | |
run: ./out/ReleaseTSanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
env: | |
TSAN_OPTIONS: halt_on_error=1 | |
linux-ubsan: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++ scons | |
- name: Build | |
run: ./build arch=x64 sanitize=undefined | |
- name: Test | |
run: ./out/ReleaseUBSanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
env: | |
UBSAN_OPTIONS: halt_on_error=1 | |
macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install scons | |
- name: Build | |
run: ./build | |
- name: Test | |
run: ./test | |
windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: pip install scons | |
- name: Build | |
run: build.bat | |
shell: cmd | |
- name: Test | |
run: test.bat | |
shell: cmd | |
android: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++-multilib scons | |
- name: Build | |
run: ./build ndk=$ANDROID_NDK | |
- name: Enable KVM | |
run: | | |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
sudo udevadm control --reload-rules | |
sudo udevadm trigger --name-match=kvm | |
- name: Test | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
arch: x86_64 | |
api-level: 28 | |
script: ./.github/workflows/test-android-x64 | |
web: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install g++ scons | |
- name: Install Emscripten | |
uses: mymindstorm/setup-emsdk@v14 | |
- name: Build | |
run: ./build os=emscripten arch=wasm | |
- name: Test | |
run: ./.github/workflows/test-web-xvfb |