wgpu/.github/workflows/pipeline.yml
Jim Blandy 7f5ec31825 Verify in CI that benchmarks build.
Also, the documentation job probably doesn't need Clippy.
2022-06-01 10:59:18 -07:00

101 lines
2.9 KiB
YAML

# Regular testing.
name: pipeline
on: [push, pull_request]
jobs:
test-msrv:
name: Test MSRV and dependencies minimal-versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: "1.56.0"
override: true
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@cargo-minimal-versions
# nightly is only used by cargo-minimal-versions to regenerate the lock file
- run: rustup toolchain add nightly --no-self-update
- name: Test all features
run: cargo minimal-versions test --all-features --workspace
- name: Check snapshots
run: git diff --exit-code -- tests/out
test:
name: Test Nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- uses: actions-rs/cargo@v1
name: Default test
with:
# Our intention here is to test `naga` with no features enabled. But
# since `cli` is the default package, a plain `cargo test` will build
# `naga` with the features requested in `cli/Cargo.toml`. Passing
# `--package naga` causes us to use the default features in the
# top-level `Cargo.toml` instead.
command: test
args: --package naga
- uses: actions-rs/cargo@v1
name: Test all features
with:
command: test
args: --all-features --workspace
- name: Check snapshots
run: git diff --exit-code -- tests/out
- uses: actions-rs/cargo@v1
name: Check benchmarks
with:
command: check
args: --benches
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: rustup component add clippy
- uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-features --workspace -- -D warnings
documentation:
name: Documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: doc
args: -p naga --all-features --document-private-items
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- name: run rustfmt
run: |
cargo fmt -- --check