51 lines
2.2 KiB
YAML
51 lines
2.2 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: Verify authoritative API mappings and consumer fixture
|
|
run: |
|
|
python3 tools/generate_rust_mapping.py --check
|
|
python3 tools/generate_api_shims.py --check
|
|
python3 tools/check_api_coverage.py
|
|
cargo check --manifest-path tests/api-compile/Cargo.toml --locked
|
|
- 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 --test packet_osd
|
|
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: Test generated skeleton, attention, and genepool catalogs
|
|
run: |
|
|
cargo test -p libremetaverse --test generated_avatar_catalogs
|
|
cargo test -p libremetaverse --lib linden_skeleton
|
|
cargo test -p libremetaverse --lib joint_base_support_category
|
|
cargo test -p libremetaverse --lib joint_get_aliases_list
|
|
- name: Build and audit clean Rust-only release artifacts
|
|
run: |
|
|
cargo build --workspace --release --locked
|
|
python3 tools/check_codegen_gate.py --release-dir target/release
|
|
- 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
|