The way that the macOS libc integration in zig works retroactively breaks older zig versions on newer macOS due to linking errors. The only version that is "guaranteed" to work on `macos-latest` is zig `master`.
42 lines
1.0 KiB
YAML
42 lines
1.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
zig-version: ["0.14.1", "0.15.2", "master"]
|
|
os: [ubuntu-latest, windows-latest]
|
|
include:
|
|
- zig-version: "master"
|
|
# -Dbuild-tests does not work when targeting Linux because the build
|
|
# system doesn't preserve linker input file order, which causes the
|
|
# linker to spew duplicate symbol errors.
|
|
os: macos-latest
|
|
check-format: true
|
|
build-options: "-Dbuild-tests -Dbuild-benchmarks"
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup Zig
|
|
uses: mlugg/setup-zig@v2
|
|
with:
|
|
version: ${{ matrix.zig-version }}
|
|
|
|
- if: ${{ matrix.check-format }}
|
|
name: Check Formatting
|
|
run: zig fmt --check --ast-check .
|
|
|
|
- name: Build
|
|
run: zig build ${{ matrix.build-options }} --summary all
|