name: CI on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: test-typescript: runs-on: ubuntu-latest name: Test TypeScript with Bun steps: - uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies run: bun install - name: Run TypeScript tests run: bun test env: OPENAI_API_KEY: ${{ env.OPENAI_API_KEY }} test-rust: runs-on: ubuntu-latest name: Test Rust steps: - uses: actions/checkout@v4 - name: Setup Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true components: rustfmt, clippy - name: Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v3 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v3 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Run Rust tests run: cargo test - name: Run Rust clippy run: cargo clippy -- -D warnings - name: Check Rust formatting run: cargo fmt -- --check