name: CI on: push: paths-ignore: - "doc/**" - "README.md" - "**.md" - "LICENSE**" pull_request: paths-ignore: - "doc/**" - "README.md" - "**.md" - "LICENSE**" jobs: x86_64-linux: runs-on: ubuntu-latest # We want to run on external PRs, but not on our own internal PRs as they'll be run by the push # to the branch. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository env: DISPLAY: ':99.0' steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Zig run: | sudo apt install xz-utils sudo sh -c 'wget -c https://pkg.machengine.org/zig/zig-linux-x86_64-0.14.0-dev.1710+8ee52f99c.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin' - name: launch xvfb run: Xvfb :99 -screen 0 1680x720x24 > /dev/null 2>&1 & # - name: x86_64-linux -> x86_64-linux-musl # run: zig build -Dtarget=x86_64-linux-musl # TODO(build): currently cannot link on macOS due to a bug in the Zig linker. https://github.com/hexops/mach/issues/1276 # - name: x86_64-linux -> x86_64-macos # run: zig build -Dtarget=x86_64-macos # - name: x86_64-linux -> aarch64-macos # run: zig build -Dtarget=aarch64-macos - name: x86_64-linux -> x86_64-windows run: zig build -Dtarget=x86_64-windows-gnu - name: build run: zig build - name: test run: zig build test - name: test (with core deps only) run: zig build -Dcore test - name: test (with sysaudio deps only) run: zig build -Dsysaudio test - name: test (with sysgpu deps only) run: zig build -Dsysgpu test - name: test (specific deps only) run: zig build -Dcore -Dsysaudio -Dsysgpu test - name: 'sysgpu: validate spirv code generation' run: | wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list http://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list sudo apt update sudo apt install vulkan-sdk spirv-tools - name: 'sysgpu: validate spirv output' run: bash ./src/sysgpu/tools/validate_spirv.sh x86_64-windows: runs-on: windows-latest # We want to run on external PRs, but not on our own internal PRs as they'll be run by the push # to the branch. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Zig run: | $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri 'https://pkg.machengine.org/zig/zig-windows-x86_64-0.14.0-dev.1710+8ee52f99c.zip' -OutFile 'C:\zig.zip' cd C:\ 7z x zig.zip Add-Content $env:GITHUB_PATH 'C:\zig-windows-x86_64-0.14.0-dev.1710+8ee52f99c\' - name: build run: zig build - name: test run: zig build test x86_64-macos: runs-on: macos-12 # We want to run on external PRs, but not on our own internal PRs as they'll be run by the push # to the branch. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Zig run: | brew uninstall --ignore-dependencies libx11 # https://github.com/ziglang/zig/issues/11066 brew install xz sudo sh -c 'wget -c https://pkg.machengine.org/zig/zig-macos-x86_64-0.14.0-dev.1710+8ee52f99c.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin' - name: build run: zig build - name: test run: zig build test