name: Native code generation on: push: pull_request: jobs: deterministic: runs-on: ubuntu-latest 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: Test generated wire codecs and translated parity cases run: | cargo test -p libremetaverse --lib generated_codec_tests cargo test -p libremetaverse --test packet_wire cargo test -p libremetaverse-compat-tests --test wire_semantics - name: Test generated visual and foliage catalogs run: | cargo test -p libremetaverse --test generated_catalogs cargo test -p libremetaverse-compat-tests --test appearance_visual_semantics - 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 crates/libremetaverse/src/visual_catalog.rs crates/libremetaverse/src/foliage_catalog.rs - name: Lint native generator run: | cargo clippy -p libremetaverse-codegen --all-targets -- -D warnings cargo clippy -p libremetaverse --all-targets --no-deps -- -D warnings - name: Prove normal consumer build does not execute generation run: cargo build -p libremetaverse --locked