mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
120 lines
3.2 KiB
YAML
120 lines
3.2 KiB
YAML
name: CTS
|
|
|
|
on:
|
|
push:
|
|
branches-ignore: [
|
|
# Renovate branches are always PRs, so they will be covered
|
|
# by the pull_request event.
|
|
"renovate/**",
|
|
# Branches with the `gh-readonly-queue` prefix are used by the
|
|
# merge queue, so they are already covered by the `merge_group` event.
|
|
"gh-readonly-queue/**",
|
|
]
|
|
pull_request:
|
|
merge_group:
|
|
|
|
env:
|
|
CARGO_INCREMENTAL: false
|
|
CARGO_TERM_COLOR: always
|
|
RUST_BACKTRACE: full
|
|
MSRV: "1.88"
|
|
|
|
# Every time a PR is pushed to, cancel any previous jobs. This
|
|
# makes us behave nicer to github and get faster turnaround times
|
|
# on PRs that are pushed to multiple times in rapid succession.
|
|
concurrency:
|
|
group: ${{github.workflow}}-${{github.ref}}
|
|
cancel-in-progress: ${{github.event_name == 'pull_request'}}
|
|
|
|
jobs:
|
|
cts:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Windows
|
|
- name: Windows x86_64
|
|
os: windows-2022
|
|
target: x86_64-pc-windows-msvc
|
|
backend: dx12
|
|
|
|
# Mac
|
|
- name: Mac aarch64
|
|
os: macos-14
|
|
target: x86_64-apple-darwin
|
|
backend: metal
|
|
|
|
# Linux
|
|
- name: Linux x86_64
|
|
os: ubuntu-24.04
|
|
target: x86_64-unknown-linux-gnu
|
|
backend: vulkan
|
|
|
|
name: CTS ${{ matrix.name }}
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: checkout repo
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Install Repo MSRV toolchain
|
|
run: |
|
|
rustup toolchain install ${{ env.MSRV }} --no-self-update --profile=minimal --target ${{ matrix.target }} --component llvm-tools
|
|
rustup override set ${{ env.MSRV }}
|
|
cargo -V
|
|
|
|
- name: Install `cargo-llvm-cov`
|
|
uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cargo-llvm-cov
|
|
|
|
- name: caching
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
prefix-key: v2-rust # Increment version for cache busting
|
|
cache-directories: cts
|
|
|
|
# We enable line numbers for panics, but that's it
|
|
- name: disable debug
|
|
shell: bash
|
|
run: |
|
|
mkdir -p .cargo
|
|
cat <<EOF >> .cargo/config.toml
|
|
[profile.dev]
|
|
debug = "line-tables-only"
|
|
EOF
|
|
|
|
- name: (Windows) Install DXC
|
|
if: matrix.os == 'windows-2022'
|
|
uses: ./.github/actions/install-dxc
|
|
|
|
- name: (Windows) Install WARP
|
|
if: matrix.os == 'windows-2022'
|
|
uses: ./.github/actions/install-warp
|
|
with:
|
|
target-dirs: "target/llvm-cov-target/debug"
|
|
|
|
- name: (Linux) Install Mesa
|
|
if: matrix.os == 'ubuntu-24.04'
|
|
uses: ./.github/actions/install-mesa
|
|
|
|
- name: run CTS
|
|
shell: bash
|
|
run: cargo --locked xtask cts --llvm-cov --backend ${{ matrix.backend }}
|
|
|
|
- name: Generate coverage report
|
|
id: coverage
|
|
shell: bash
|
|
continue-on-error: true
|
|
run: |
|
|
set -e
|
|
|
|
cargo --locked llvm-cov report --lcov --output-path lcov.info
|
|
|
|
- name: Upload coverage report to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
if: steps.coverage.outcome == 'success'
|
|
with:
|
|
files: lcov.info
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|