name: CI on: push: branches: [main] pull_request: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm lint typecheck: name: Typecheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - run: pnpm install --frozen-lockfile # Build all non-web packages - run: pnpm -r --filter '!@composio/ao-web' build # Typecheck all non-web packages - run: pnpm -r --filter '!@composio/ao-web' typecheck # Build web (Next.js build includes its own typecheck) - run: pnpm --filter @composio/ao-web build test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm -r --filter '!@composio/ao-web' build - run: pnpm test test-web: name: Test (Web) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - name: Install tmux run: sudo apt-get update && sudo apt-get install -y tmux - name: Start tmux server run: tmux start-server - run: pnpm install --frozen-lockfile - run: pnpm -r --filter '!@composio/ao-web' build - name: Run web server tests (unit + integration) run: pnpm --filter @composio/ao-web exec vitest run server/__tests__/