mirror of
https://github.com/italicsjenga/vello.git
synced 2025-01-08 20:01:30 +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