name: CI

on:
   push:
      branches: [main]
   workflow_dispatch:

jobs:
   test-and-typecheck:
      runs-on: macos-latest
      environment: test

      strategy:
         matrix:
            node-version: [20.x, 22.x]

      steps:
         - name: Checkout code
           uses: actions/checkout@v4

         - name: Setup Node.js ${{ matrix.node-version }}
           uses: actions/setup-node@v4
           with:
              node-version: ${{ matrix.node-version }}
              cache: "npm"

         - name: Install dependencies
           run: npm ci

         - name: Build packages
           run: npm run build

         - name: Run tests
           run: cd packages/lemmy && npm run test:run
           env:
              ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
              OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
              GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
