gpu-dawn: begin publishing prebuilt binaries

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-02-11 16:41:06 -07:00 committed by Stephen Gutekanst
parent 485d82899a
commit 1807e7b2f3
4 changed files with 58 additions and 18 deletions

View file

@ -1,9 +1,12 @@
name: CI
on:
- push
- pull_request
workflow_run:
workflows: ["Draft release"]
types:
- completed
jobs:
x86_64-linux:
needs: release-draft
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.
@ -17,8 +20,13 @@ jobs:
sudo sh -c 'wget -c https://ziglang.org/builds/zig-linux-x86_64-0.9.0-dev.2023+16b753549.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin'
- name: Clone mach-glfw
run: rm libs/mach-glfw && git clone https://github.com/hexops/mach-glfw libs/mach-glfw
- name: test
run: zig build test && find zig-out/
- name: install
run: zig build install && find zig-out/
- name: upload
run: |
mv zig-out/lib/libdawn.a zig-out/lib/libdawn_x86_64-linux.a
gzip -9 zig-out/lib/libdawn_x86_64-linux.a
gh release upload $(git rev-parse --short HEAD) zig-out/lib/libdawn_x86_64-linux.a
# TODO(build-system): enable windows CI here once gpu-dawn builds under Windows
# x86_64-windows:
# runs-on: windows-latest
@ -36,9 +44,11 @@ jobs:
# cd C:\
# 7z x zig.zip
# Add-Content $env:GITHUB_PATH "C:\zig-windows-x86_64-0.9.0-dev.2023+16b753549\"
# - name: test
# run: zig build test && find zig-out/
# - name: install
# run: zig build install && find zig-out/
# # TODO: upload step for Windows
x86_64-macos:
needs: release-draft
runs-on: macos-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.
@ -52,7 +62,12 @@ jobs:
sudo sh -c 'wget -c https://ziglang.org/builds/zig-macos-x86_64-0.9.0-dev.2023+16b753549.tar.xz -O - | tar -xJ --strip-components=1 -C /usr/local/bin'
- name: Clone mach-glfw
run: rm libs/mach-glfw && git clone https://github.com/hexops/mach-glfw libs/mach-glfw
- name: test
run: zig build test && find zig-out/
- name: install
run: zig build install && find zig-out/
env:
AGREE: true
- name: upload
run: |
mv zig-out/lib/libdawn.a zig-out/lib/libdawn_x86_64-macos.a
gzip -9 zig-out/lib/libdawn_x86_64-macos.a
gh release upload $(git rev-parse --short HEAD) zig-out/lib/libdawn_x86_64-macos.a

View file

@ -0,0 +1,11 @@
name: Draft release
on:
push:
branches:
- 'main'
jobs:
draft:
runs-on: ubuntu-latest
steps:
- name: Create draft
run: gh release create $(git rev-parse --short HEAD) --title "Automatic release of main @ $(git rev-parse --short HEAD)"

View file

@ -1,12 +1,9 @@
name: CI
name: CI M1
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
workflow_run:
workflows: ["Draft release"]
types:
- completed
jobs:
aarch64-macos:
runs-on: [self-hosted, macOS, ARM64]
@ -21,7 +18,12 @@ jobs:
zig version
- name: Clone mach-glfw
run: rm libs/mach-glfw && git clone https://github.com/hexops/mach-glfw libs/mach-glfw
- name: test
run: zig build test && find zig-out/
- name: install
run: zig build install && find zig-out/
env:
AGREE: true
- name: upload
run: |
mv zig-out/lib/libdawn.a zig-out/lib/libdawn_aarch64-macos.a
gzip -9 zig-out/lib/libdawn_aarch64-macos.a
gh release upload $(git rev-parse --short HEAD) zig-out/lib/libdawn_aarch64-macos.a

View file

@ -0,0 +1,12 @@
name: Publish release
on:
workflow_run:
workflows: ["CI", "CI M1"]
types:
- completed
jobs:
draft:
runs-on: ubuntu-latest
steps:
- name: Publish release
run: echo "TODO(build-system): gh CLI has no way to mark draft as published?"