mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
Re-implement `naga` development workflows using [`cargo xtask`]. Convert `make` logic and shader test configuration as file with Bash variables into an `xtask` crate and YAML files, respectively. Pros: * We now have a _portable_ workflow everywhere, which means Windows folks and people who don't install `make` don't have to suffer. 😮💨 * Workflow logic is now relatively easy to inspect and change. Whew! 💁🏻♂️💦 * Contributors can use their existing Rust knowledge to contribute to developer experience. 🎉 * `cargo xtask` is a relatively well-known convention for workflows in the ecosystem. * We can do fancy things like allow folks to run at different log levels for workflows, depending on their tastes. Cons: * There's now a non-trivial compile step to project workflow. Incremental rebuilds seem to be pretty short, though! * Code is much more verbose than the (very) terse `make` implementation. [`cargo xtask`]: https://github.com/matklad/cargo-xtask
35 lines
757 B
YAML
35 lines
757 B
YAML
name: validation-linux
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/validation-linux.yml'
|
|
- 'tests/out/spv/*.spvasm'
|
|
- 'tests/out/glsl/*.glsl'
|
|
- 'tests/out/dot/*.dot'
|
|
- 'tests/out/wgsl/*.wgsl'
|
|
- 'src/front/wgsl/*'
|
|
- 'xtask/**'
|
|
|
|
jobs:
|
|
validate-linux:
|
|
name: SPIR-V + GLSL
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install tools
|
|
run: sudo apt-get install spirv-tools glslang-tools graphviz
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: |
|
|
xtask -> target
|
|
|
|
- run: cargo xtask validate spv
|
|
|
|
- run: cargo xtask validate glsl
|
|
|
|
- run: cargo xtask validate dot
|
|
|
|
- run: cargo xtask validate wgsl
|