name: CI on: push: branches: [main, 1.x] pull_request: branches: [main, 1.x] jobs: typescript: name: TypeScript runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Install dependencies run: bun install - name: Format check run: bun run format:check - name: Type check run: bun run typecheck - name: Build run: bun run build - name: Test run: bun run test rust: name: Rust runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - name: Cache cargo uses: actions/cache@v5 with: path: | ~/.cargo/registry ~/.cargo/git rust/target key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Format check run: cd rust && cargo fmt -- --check - name: Clippy run: cd rust && cargo clippy --all-targets -- -D warnings - name: Build run: cd rust && cargo build --release - name: Test run: cd rust && cargo test python: name: Python runs-on: ubuntu-latest strategy: matrix: python-version: ["3.11", "3.12"] steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | cd python python -m pip install --upgrade pip pip install -e ".[dev]" - name: Lint with ruff run: | cd python ruff check . ruff format --check . - name: Type check with mypy run: | cd python mypy elizaos_plugin_groq - name: Test with pytest run: | cd python pytest