35 lines
1.1 KiB
YAML
35 lines
1.1 KiB
YAML
name: Rust API gates
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
api-gates:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@1.85.0
|
|
with:
|
|
components: clippy,rustfmt
|
|
- name: Generated mapping and API coverage
|
|
run: |
|
|
python3 tools/generate_rust_mapping.py --check
|
|
python3 tools/generate_api_shims.py --check
|
|
python3 tools/check_api_coverage.py
|
|
python3 tools/generate_surface.py --check
|
|
python3 tools/check_test_parity.py
|
|
python3 -m unittest discover -s tools -p 'test_*.py'
|
|
- name: Formatting
|
|
run: cargo fmt --all -- --check
|
|
- name: Workspace check
|
|
run: cargo check --workspace --all-targets
|
|
- name: Downstream API fixture
|
|
run: cargo check --locked --manifest-path tests/api-compile/Cargo.toml
|
|
- name: Test compilation
|
|
run: cargo test --workspace --no-run
|
|
- name: Clippy
|
|
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
- name: Documentation
|
|
run: cargo doc --workspace --no-deps
|