name: Imaging and meshing gate on: push: pull_request: jobs: native: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} env: RUSTDOCFLAGS: -D warnings steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - uses: dtolnay/rust-toolchain@stable with: components: clippy,rustfmt - name: Audit milestone ownership and feature isolation run: python tools/check_milestone_06.py - name: Test native imaging and meshing crates run: | cargo test -p libremetaverse-imaging cargo test -p libremetaverse-imaging-skia --no-default-features cargo test -p libremetaverse-prim-mesher - name: Test reviewed milestone parity cases run: | cargo test -p libremetaverse-compat-tests --test imaging_meshing_semantics reviewed_managedimagetests_ cargo test -p libremetaverse-compat-tests --test imaging_meshing_semantics reviewed_coordtests_ cargo test -p libremetaverse-compat-tests --test imaging_meshing_semantics reviewed_quattests_ cargo test -p libremetaverse-compat-tests --test imaging_meshing_semantics reviewed_primmeshtests_ - name: Compile workspace tests and performance baselines run: | cargo test --workspace --no-run cargo bench -p libremetaverse-imaging --bench image_pipeline --no-run cargo bench -p libremetaverse-prim-mesher --bench meshing --no-run - name: Lint and document milestone crates run: | cargo clippy -p libremetaverse-imaging -p libremetaverse-imaging-skia -p libremetaverse-prim-mesher --all-targets -- -D warnings cargo doc -p libremetaverse-imaging -p libremetaverse-imaging-skia -p libremetaverse-prim-mesher --no-deps - name: Verify formatting if: runner.os == 'Linux' run: cargo fmt --all -- --check