Files
wgpu/.github/workflows/validation-linux.yml
Erich Gubler 91d48b2923 build: move from make to cargo xtask workflows
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
2023-06-08 16:56:57 +02:00

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