name: Test on: [push, pull_request] jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Cargo check run: cargo check --workspace --all-targets --all-features - name: Clippy (deny warnings) run: cargo clippy --workspace --all-targets --all-features -- -D warnings test: name: Test runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable - name: Cargo test run: cargo test --workspace --all-features -- --nocapture render-parity: name: Render parity runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable - name: Install headless GL runtime run: | sudo apt-get update sudo apt-get install -y xvfb libgl1-mesa-dri libgles2-mesa-dev mesa-utils - name: Build render-demo binary run: cargo build -p render-demo --features demo - name: Run frame parity suite run: | xvfb-run -s "-screen 0 1280x720x24" cargo run -p render-parity -- \ --manifest parity/cases.toml \ --output-dir target/render-parity/current \ --demo-bin target/debug/parkan-render-demo \ --keep-going - name: Upload parity artifacts if: always() uses: actions/upload-artifact@v6 with: name: render-parity-artifacts path: target/render-parity/current if-no-files-found: ignore