name: performance evidence on: push: paths: - "benchmarks/**" - "tools/performance/**" - "crates/libremetaverse/src/inventory.rs" - "crates/libremetaverse/src/targa.rs" - ".gitea/workflows/performance.yml" - "Cargo.toml" - "Cargo.lock" pull_request: paths: - "benchmarks/**" - "tools/performance/**" - "crates/libremetaverse/src/inventory.rs" - "crates/libremetaverse/src/targa.rs" - ".gitea/workflows/performance.yml" - "Cargo.toml" - "Cargo.lock" jobs: audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: toolchain: 1.97.1 components: rustfmt, clippy - uses: actions/setup-dotnet@v4 with: dotnet-version: | 8.0.x 10.0.x - name: Check out pinned C# reference run: | git clone --filter=blob:none https://github.com/cinderblocks/libremetaverse.git "$RUNNER_TEMP/libremetaverse" git -C "$RUNNER_TEMP/libremetaverse" checkout 2aa70bb68513b39795da5d13c88f31b86e85a3ba - name: Compile separate C# reference runner run: >- dotnet build benchmarks/csharp-reference/MetaCrate.ReferenceBenchmarks.csproj -c Release -p:ReferenceRoot="$RUNNER_TEMP/libremetaverse" - name: Verify harness run: cargo test -p metacrate-performance --profile benchmark --locked -j1 - name: Audit committed evidence run: >- cargo run -p metacrate-performance --profile benchmark --locked -j1 -- audit --fixture-root benchmarks/fixtures --rust benchmarks/results/rust-linux-x86_64.json --reference benchmarks/results/csharp-linux-x86_64.json --comparison benchmarks/results/comparison.json