mach/.github/workflows/m1_ci.yml
2022-05-30 10:23:21 -07:00

49 lines
1.8 KiB
YAML

name: M1 CI
on:
# SECURITY: This must be a push event only, otherwise our M1 mac runner would be compromised by
# third-party pull requests which could run arbitrary code. This way, we can restrict it to
# collaborators of the repository only.
#
# Whenever GitHub Actions gets official M1 support, we can use that for PRs and get rid of this
# self-hosted runner: https://github.com/actions/virtual-environments/issues/2187
- push
jobs:
aarch64-macos:
if: ${{ github.repository == 'hexops/mach' }}
runs-on: [self-hosted, macOS, ARM64]
strategy:
matrix:
project: ['.', 'glfw', 'freetype']
defaults:
run:
shell: "/usr/bin/arch -arch arm64e /bin/bash --noprofile --norc -eo pipefail {0}"
steps:
- name: Clean repository submodules
# See https://github.com/actions/checkout/issues/385
run: |
rm -rf $GITHUB_WORKSPACE && mkdir $GITHUB_WORKSPACE
- name: Checkout
uses: actions/checkout@v2
- name: Setup Zig
run: |
zig version
- name: mach::test
run: zig build test
env:
AGREE: true
- name: aarch64-macos -> x86_64-macos
run: zig build test -Dtarget=x86_64-macos.12-gnu
env:
AGREE: true
- name: aarch64-macos -> x86_64-windows
run: zig build test -Dtarget=x86_64-windows-gnu
- name: aarch64-macos -> x86_64-linux
run: zig build test -Dtarget=x86_64-linux-gnu
- name: compile all examples
if: matrix.project == '.'
run: cd ${{ matrix.project }} && zig build compile-all
env:
AGREE: true
- name: compile all examples (WASM)
if: matrix.project == '.'
run: cd ${{ matrix.project }} && zig build compile-all -Dtarget=wasm32-freestanding-none