From 1807e7b2f3baf407f879299fe3b4ce668ac3da27 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Fri, 11 Feb 2022 16:41:06 -0700 Subject: [PATCH] gpu-dawn: begin publishing prebuilt binaries Signed-off-by: Stephen Gutekanst --- gpu-dawn/.github/workflows/ci.yml | 31 ++++++++++++++----- gpu-dawn/.github/workflows/draft_release.yml | 11 +++++++ gpu-dawn/.github/workflows/m1_ci.yml | 22 +++++++------ .../.github/workflows/publish_release.yml | 12 +++++++ 4 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 gpu-dawn/.github/workflows/draft_release.yml create mode 100644 gpu-dawn/.github/workflows/publish_release.yml diff --git a/gpu-dawn/.github/workflows/ci.yml b/gpu-dawn/.github/workflows/ci.yml index d7f09c14..4bae10ed 100644 --- a/gpu-dawn/.github/workflows/ci.yml +++ b/gpu-dawn/.github/workflows/ci.yml @@ -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 diff --git a/gpu-dawn/.github/workflows/draft_release.yml b/gpu-dawn/.github/workflows/draft_release.yml new file mode 100644 index 00000000..b05774a5 --- /dev/null +++ b/gpu-dawn/.github/workflows/draft_release.yml @@ -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)" diff --git a/gpu-dawn/.github/workflows/m1_ci.yml b/gpu-dawn/.github/workflows/m1_ci.yml index 58523c47..d91ef5de 100644 --- a/gpu-dawn/.github/workflows/m1_ci.yml +++ b/gpu-dawn/.github/workflows/m1_ci.yml @@ -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 diff --git a/gpu-dawn/.github/workflows/publish_release.yml b/gpu-dawn/.github/workflows/publish_release.yml new file mode 100644 index 00000000..b6eb7dc7 --- /dev/null +++ b/gpu-dawn/.github/workflows/publish_release.yml @@ -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?"