name: Test Tabby Agent

on:
  pull_request:
    branches: [ main ]
    paths:
      - '.github/workflows/test-tabby-agent.yml'
      - 'package.json'
      - 'yarn.lock'
      - 'clients/tabby-agent/**'

concurrency:
  group: ${{ github.workflow_ref }}-${{ github.head_ref || github.ref_name }} 
  
  # If this is enabled it will cancel current running and start latest
  cancel-in-progress: true

jobs:
  tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          lfs: true
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18.x'
          cache: yarn
          cache-dependency-path: 'yarn.lock'
      - name: Install dependencies
        working-directory: ./clients/tabby-agent
        run: yarn install
      - name: Lint
        working-directory: ./clients/tabby-agent
        run: yarn lint:check
      - name: Run tests
        working-directory: ./clients/tabby-agent
        run: yarn test
      - name: Test build
        working-directory: ./clients/tabby-agent
        run: yarn build
      