Add a public API to expose allocation reports #1333
Workflow file for this run
This file contains 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
on: [push, pull_request] | |
name: CI | |
jobs: | |
check_msrv: | |
name: Check MSRV (1.69.0) | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
features: vulkan | |
- os: windows-latest | |
features: vulkan,d3d12 | |
- os: macos-latest | |
features: vulkan,metal | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/[email protected] | |
# Note that examples are extempt from the MSRV check, so that they can use newer Rust features | |
- run: cargo check --workspace --features ${{ matrix.features }} --no-default-features | |
test: | |
name: Test Suite | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
features: vulkan,visualizer | |
- os: windows-latest | |
features: vulkan,visualizer,d3d12,public-winapi | |
- os: macos-latest | |
features: vulkan,visualizer,metal | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cargo test all targets | |
run: cargo test --workspace --all-targets --features ${{ matrix.features }} --no-default-features | |
- name: Cargo test docs | |
run: cargo test --workspace --doc --features ${{ matrix.features }} --no-default-features | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
features: vulkan,visualizer | |
- os: windows-latest | |
features: vulkan,visualizer,d3d12,public-winapi | |
- os: macos-latest | |
features: vulkan,visualizer,metal | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cargo clippy | |
run: cargo clippy --workspace --all-targets --features ${{ matrix.features }} --no-default-features -- -D warnings | |
- name: Install nightly Rust | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Generate lockfile with minimal dependency versions | |
run: cargo +nightly generate-lockfile -Zminimal-versions | |
- name: Bump `libc 0.1` version to `0.2` via `malloc_buf 0.0.6` | |
if: ${{ runner.os == 'macOS' }} | |
run: | | |
# The 7-year-unmaintained malloc_buf (depended on via metal-rs->objc) | |
# only allows using libc 0.2 since the 0.0.6 release, which is necessary | |
# since the libc 0.1 range no longer compiles. Fortunately objc which | |
# is also unmaintained for 4 years depends on malloc_buf >=0.0,<0.1.0, | |
# allowing the 0.0.6 release to be used (but not the 1.0.0 release). | |
cargo update -p malloc_buf --precise 0.0.6 | |
- name: Cargo clippy with minimal-versions | |
run: cargo +stable clippy --workspace --all-targets --features ${{ matrix.features }} --no-default-features -- -D warnings | |
doc: | |
name: Build documentation | |
strategy: | |
matrix: | |
# Rely on Windows and Mac to also compile the Vulkan portion (via --all-features) | |
os: [windows-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
RUSTDOCFLAGS: -Dwarnings | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build documentation | |
run: cargo doc --no-deps --workspace --all-features --document-private-items | |
readme: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use cached cargo-readme | |
uses: actions/cache@v4 | |
id: cargo-readme-cache | |
with: | |
path: ~/.cargo/bin/cargo-readme | |
key: ${{ runner.os }}-cargo-readme | |
- name: Install cargo-readme | |
if: steps.cargo-readme-cache.outputs.cache-hit != 'true' | |
run: cargo install cargo-readme | |
- name: Check if README.md is up-to-date | |
run: | | |
cargo readme > README.md | |
git diff --quiet || (echo '::error::Generated README is different, please regenerate with `cargo readme > README.md`'; git diff; false) |