Metal / MSL external texture implementation #6604
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 xtask cts --llvm-cov --backend ${{ matrix.backend }} | |
- name: Generate coverage report | |
id: coverage | |
shell: bash | |
continue-on-error: true | |
run: | | |
set -e | |
cargo 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 }} |