mach/.github/workflows/ci.yml
2022-05-04 11:53:37 -07:00

108 lines
4.5 KiB
YAML

name: CI
on:
- push
- pull_request
jobs:
x86_64-linux:
runs-on: ubuntu-latest
strategy:
matrix:
project: ['.', 'glfw']
# 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://ziglang.org/builds/zig-linux-x86_64-0.10.0-dev.2017+a0a2ce92c.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin'
- name: x86_64-linux -> x86_64-macos
run: cd ${{ matrix.project }} && zig build test -Dtarget=x86_64-macos.12...12-gnu
env:
AGREE: true
- name: x86_64-linux -> aarch64-macos
run: cd ${{ matrix.project }} && zig build test -Dtarget=aarch64-macos.12...12-gnu
env:
AGREE: true
- name: x86_64-linux -> x86_64-windows
run: cd ${{ matrix.project }} && zig build test -Dtarget=x86_64-windows-gnu
- name: compile all examples
if: matrix.project == '.'
run: cd ${{ matrix.project }} && zig build compile-all
- name: launch xvfb
run: Xvfb :99 -screen 0 1680x720x24 > /dev/null 2>&1 &
- name: test
run: |
sudo add-apt-repository -y ppa:kisak/kisak-mesa
sudo apt-get update
sudo apt-get install mesa-utils mesa-utils-extra mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers xvfb
cd ${{ matrix.project }} && zig build test
x86_64-windows:
runs-on: windows-latest
strategy:
matrix:
project: ['.', 'glfw']
# 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: Install Git
run: choco install git
- name: Setup Zig
run: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri "https://ziglang.org/builds/zig-windows-x86_64-0.10.0-dev.2017+a0a2ce92c.zip" -OutFile "C:\zig.zip"
cd C:\
7z x zig.zip
Add-Content $env:GITHUB_PATH "C:\zig-windows-x86_64-0.10.0-dev.2017+a0a2ce92c\"
- name: x86_64-windows -> x86_64-macos
run: cd ${{ matrix.project }} && zig build test -Dtarget='x86_64-macos.12...12-gnu'
env:
AGREE: true
- name: x86_64-windows -> aarch64-macos
run: cd ${{ matrix.project }} && zig build test -Dtarget='aarch64-macos.12...12-gnu'
env:
AGREE: true
- name: x86_64-windows -> x86_64-linux
run: cd ${{ matrix.project }} && zig build test -Dtarget=x86_64-linux-gnu
- name: compile all examples
if: matrix.project == '.'
run: cd ${{ matrix.project }} && zig build compile-all
- name: test
run: cd ${{ matrix.project }} && zig build test
x86_64-macos:
runs-on: macos-latest
strategy:
matrix:
project: ['.', 'glfw']
# 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://ziglang.org/builds/zig-macos-x86_64-0.10.0-dev.2017+a0a2ce92c.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin'
# TODO: re-enable once we can use macos-12 reliably on GitHub actions (currently works, but
# takes a very long time to acquire macos-12 runners.)
# - name: test
# run: cd ${{ matrix.project }} && zig build test
# env:
# AGREE: true
- name: x86_64-macos -> aarch64-macos
run: cd ${{ matrix.project }} && zig build test -Dtarget=aarch64-macos.12...12-gnu
env:
AGREE: true
- name: x86_64-macos -> x86_64-windows
run: cd ${{ matrix.project }} && zig build test -Dtarget=x86_64-windows-gnu
- name: x86_64-macos -> x86_64-linux
run: cd ${{ matrix.project }} && zig build test -Dtarget=x86_64-linux-gnu