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.1911+3bf89f55c.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 ## TODO: use hexops/spirv-tools for spirv validation instead OR if we are using ZLS finally, just remove this commented block ## The following block throws this error, so it is disabled for now: ## https://github.com/hexops/mach/actions/runs/11223060751/job/31196848244?pr=1279#step:14:79 # - 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 libyaml-cpp-dev 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.1911+3bf89f55c.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.1911+3bf89f55c\' - 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.1911+3bf89f55c.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin' - name: build run: zig build - name: test run: zig build test