Files
MetaCrate/.gitea/workflows/codegen.yml
Chili Palmer aeb44fd089
Some checks failed
Native code generation / deterministic (push) Successful in 8m55s
Imaging and meshing gate / native (push) Failing after 2m32s
JPEG 2000 feature / linux (push) Successful in 1m39s
Skia feature / linux (push) Has been cancelled
Native Rust workspace compile / compile (push) Has been cancelled
Limit Gitea workflow build scope
2026-08-09 12:39:21 +00:00

96 lines
3.7 KiB
YAML

name: Native code generation
on:
push:
paths:
- ".gitea/workflows/codegen.yml"
- "Cargo.toml"
- "Cargo.lock"
- "api/**"
- "codegen/**"
- "tools/codegen/**"
- "tools/generate_*.py"
- "tools/check_api_coverage.py"
- "tools/check_codegen_gate.py"
- "crates/libremetaverse/Cargo.toml"
- "crates/libremetaverse/src/generated.rs"
- "crates/libremetaverse/src/packets.rs"
- "crates/libremetaverse/src/packet_*.rs"
- "crates/libremetaverse/src/*_catalog.rs"
- "tests/api-compile/**"
- "tests/compat/Cargo.toml"
- "tests/compat/build.rs"
- "tests/compat/src/**"
- "tests/compat/tests/wire_semantics.rs"
- "tests/compat/tests/appearance_visual_semantics.rs"
- "tests/upstream-tests.json"
pull_request:
paths:
- ".gitea/workflows/codegen.yml"
- "Cargo.toml"
- "Cargo.lock"
- "api/**"
- "codegen/**"
- "tools/codegen/**"
- "tools/generate_*.py"
- "tools/check_api_coverage.py"
- "tools/check_codegen_gate.py"
- "crates/libremetaverse/Cargo.toml"
- "crates/libremetaverse/src/generated.rs"
- "crates/libremetaverse/src/packets.rs"
- "crates/libremetaverse/src/packet_*.rs"
- "crates/libremetaverse/src/*_catalog.rs"
- "tests/api-compile/**"
- "tests/compat/Cargo.toml"
- "tests/compat/build.rs"
- "tests/compat/src/**"
- "tests/compat/tests/wire_semantics.rs"
- "tests/compat/tests/appearance_visual_semantics.rs"
- "tests/upstream-tests.json"
workflow_dispatch:
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 -p libremetaverse-codegen --release --locked -j 1
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 --lib --no-deps -- -D warnings
- name: Prove normal consumer build does not execute generation
run: cargo build -p libremetaverse --locked