name: Native code generation on: push: pull_request: jobs: deterministic: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy,rustfmt - name: Test diagnostics and byte-identical generation run: cargo test -p libremetaverse-codegen - name: Verify vendored hashes and checked-in output run: cargo run -p libremetaverse-codegen -- check - name: Regenerate twice without reference checkout access run: | cargo run -p libremetaverse-codegen -- generate cargo run -p libremetaverse-codegen -- generate git diff --exit-code -- codegen/generated crates/libremetaverse/src/packet_catalog.rs - name: Lint native generator run: cargo clippy -p libremetaverse-codegen --all-targets -- -D warnings - name: Prove normal consumer build does not execute generation run: cargo build -p libremetaverse --locked