CI #173
This file contains hidden or 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 | |
| timeout-minutes: 10 | |
| 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 | |
| timeout-minutes: 10 | |
| 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 | |
| timeout-minutes: 10 | |
| 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 | |
| timeout-minutes: 10 | |
| 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=thread cxx_host=clang++ | |
| - name: Test | |
| run: ./out/ReleaseTSanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
| env: | |
| TSAN_OPTIONS: halt_on_error=1 | |
| linux-ubsan: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| 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=undefined cxx_host=clang++ | |
| - name: Test | |
| run: ./out/ReleaseUBSanX64/primordialsoup out/snapshots/TestRunner.vfuel | |
| env: | |
| UBSAN_OPTIONS: halt_on_error=1 | |
| macos: | |
| runs-on: macos-latest | |
| timeout-minutes: 10 | |
| 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 | |
| timeout-minutes: 10 | |
| 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 | |
| timeout-minutes: 10 | |
| 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: 30 | |
| script: ./test-android | |
| web: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| 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 |