97 lines
3.8 KiB
YAML
97 lines
3.8 KiB
YAML
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
|