mirror of
https://github.com/italicsjenga/vello.git
synced 2025-01-09 20:31:29 +11:00
Shader compilation in GitHub Actions
This patch sets up very basic CI (right now just cargo fmt) but more importantly compiles shaders in a GitHub Action. Any PR to branches other than main will run shader compilation. Any push to the dev branch will run shader compilation and then merge to main. Closes #177
This commit is contained in:
parent
60d197bb4e
commit
682e4b769f
22
.github/actions/shader/action.yml
vendored
Normal file
22
.github/actions/shader/action.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
name: compile shaders
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- uses: seanmiddleditch/gha-setup-ninja@master
|
||||||
|
|
||||||
|
- name: setup SPIRV tools
|
||||||
|
# consider install-vulkan-sdk instead
|
||||||
|
uses: humbletim/setup-vulkan-sdk@v1.2.0
|
||||||
|
with:
|
||||||
|
vulkan-query-version: 1.3.204.0
|
||||||
|
vulkan-components: Glslang, SPIRV-Cross
|
||||||
|
vulkan-use-cache: true
|
||||||
|
|
||||||
|
- name: install DXC
|
||||||
|
uses: napokue/setup-dxc@v1.0.0
|
||||||
|
|
||||||
|
- name: run shader compilers
|
||||||
|
run: ninja
|
||||||
|
shell: pwsh
|
||||||
|
working-directory: piet-gpu/shader
|
27
.github/workflows/ci.yml
vendored
Normal file
27
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- dev
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
rustfmt:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: cargo fmt
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: install stable toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
profile: minimal
|
||||||
|
components: rustfmt
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: cargo fmt
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: fmt
|
||||||
|
args: --all -- --check
|
37
.github/workflows/push-shader.yml
vendored
Normal file
37
.github/workflows/push-shader.yml
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
push-shaders:
|
||||||
|
runs-on: windows-latest
|
||||||
|
name: compile shaders and push to main
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
# need history to make the merge work
|
||||||
|
# possibly we can optimize this and set
|
||||||
|
# allow-unrelated-histories on merge
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: prepare repo for compilation
|
||||||
|
run: |
|
||||||
|
git fetch origin main
|
||||||
|
git switch main
|
||||||
|
git merge dev -m "merge from dev branch"
|
||||||
|
git rm -r --ignore-unmatch piet-gpu/shader/gen
|
||||||
|
mkdir piet-gpu/shader/gen
|
||||||
|
- uses: ./.github/actions/shader
|
||||||
|
- name: commit
|
||||||
|
id: commit
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
git add piet-gpu/shader/gen
|
||||||
|
git config user.name "Commit by GitHub Action"
|
||||||
|
git config user.email "nobody@example.com"
|
||||||
|
git commit -m "commit compiled shaders"
|
||||||
|
- name: push
|
||||||
|
if: steps.commit.outcome == 'success'
|
||||||
|
run: |
|
||||||
|
git show-ref
|
||||||
|
git push origin main
|
13
.github/workflows/shader.yml
vendored
Normal file
13
.github/workflows/shader.yml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
push-shaders:
|
||||||
|
runs-on: windows-latest
|
||||||
|
name: compile shaders
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: mkdir piet-gpu/shader/gen
|
||||||
|
- uses: ./.github/actions/shader
|
Loading…
Reference in a new issue