Enrich vgi-lint metadata: docs, descriptions, examples #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| # Allow release.yml to run this exact suite as a gating `uses:` job. | |
| workflow_call: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| build-test: | |
| name: fmt · clippy · doc · unit + proptest | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| save-if: ${{ github.ref == 'refs/heads/main' }} | |
| - name: Format check | |
| run: cargo fmt --all -- --check | |
| - name: Clippy (deny warnings) | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| - name: Docs (deny warnings) | |
| run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace | |
| - name: Unit tests + property-based no-panic fuzzing | |
| run: cargo test --workspace --all-features | |
| e2e: | |
| name: SQLLogic e2e (haybarn) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: release | |
| save-if: ${{ github.ref == 'refs/heads/main' }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install the haybarn unittest runner | |
| run: | | |
| uv tool install haybarn-unittest | |
| echo "$HOME/.local/bin" >> "$GITHUB_PATH" | |
| - name: Install the vgi community extension | |
| run: echo "INSTALL vgi FROM community;" | uvx haybarn-cli | |
| - name: Run SQLLogic suite against the built worker | |
| run: ./run_tests.sh | |
| metadata-quality: | |
| name: metadata quality (vgi-lint) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: release | |
| save-if: ${{ github.ref == 'refs/heads/main' }} | |
| - name: Build worker (release) | |
| run: cargo build --release --bin symbols-worker | |
| - name: vgi-lint | |
| uses: Query-farm/vgi-lint-check@v1 | |
| with: | |
| version: "0.37.0" | |
| location: "${{ github.workspace }}/target/release/symbols-worker" | |
| fail-on: info | |
| fuzz: | |
| name: cargo-fuzz (zero-panic gate) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly (cargo-fuzz needs nightly) | |
| uses: dtolnay/rust-toolchain@nightly | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: fuzz | |
| save-if: ${{ github.ref == 'refs/heads/main' }} | |
| - name: Install cargo-fuzz | |
| run: cargo install cargo-fuzz --locked | |
| - name: Fuzz the parsers + id path (short smoke; zero panics gates CI) | |
| working-directory: crates/symbols-worker/fuzz | |
| run: | | |
| for target in parse_module derive_id resolve_addr; do | |
| echo "== fuzzing $target ==" | |
| cargo +nightly fuzz run "$target" -- -max_total_time=45 -rss_limit_mb=4096 | |
| done | |
| audit: | |
| name: supply-chain audit (cargo-audit) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: cargo audit | |
| uses: rustsec/audit-check@v2 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| msrv: | |
| name: MSRV check (rust 1.90) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain (pinned MSRV) | |
| uses: dtolnay/rust-toolchain@1.90 | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: msrv | |
| save-if: ${{ github.ref == 'refs/heads/main' }} | |
| - name: cargo check (workspace, all features) | |
| run: cargo check --workspace --all-features |