39 lines
1.7 KiB
YAML
39 lines
1.7 KiB
YAML
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
|