fix(generator): compile 20 real-world specs, gate CI on the working set #47
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: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo test --all-features | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo clippy --all-features -- -D warnings | |
| fmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - run: cargo fmt --check | |
| doc: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo doc --no-deps --all-features | |
| env: | |
| RUSTDOCFLAGS: -D warnings | |
| # Regression guard: generate clients for a curated list of real-world specs | |
| # and `cargo check` the result. Catches breakage where a generator change | |
| # still passes unit tests but emits invalid Rust against real-world OAS | |
| # documents. See scripts/spec-compile.sh. | |
| # | |
| # The list is the "gold" subset that currently compiles cleanly. Local | |
| # `scripts/spec-compile.sh` (no args) runs against all of `specs/`; we | |
| # don't gate CI on the full corpus because many of the 50+ specs currently | |
| # surface unfixed generator bugs (tracked in #14). | |
| spec-compile: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: | | |
| scripts/spec-compile.sh \ | |
| anthropic asana browserbase cartesia cerebras coda coingecko \ | |
| digitalocean groq imagekit launchdarkly meta-llama openai \ | |
| resend runway spotify terminal-shop twilio val-town writer |