diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..8d0e3b5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: CI + +on: [push, pull_request] + +env: + RUSTFLAGS: "-D warnings" + +jobs: + test-matrix: + name: test (${{ matrix.features }}) + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + features: + - "full" + - "light" + - "chat,provider-openai" + - "chat,provider-openai,tools-mcp" + - "multi,provider-openai" + - "multi,provider-openai,tools-mcp" + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + - run: cargo test --no-default-features --features "${{ matrix.features }}" --lib + + clippy: + name: clippy + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + - run: cargo clippy --all-features --lib -- -D warnings + + format: + name: fmt + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + - run: cargo fmt --check + + examples: + name: examples + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + - run: cargo test --features "full"