Skip to content

Merge pull request #143 from EvoTestOps/feature/parallelize-llm-calls #240

Merge pull request #143 from EvoTestOps/feature/parallelize-llm-calls

Merge pull request #143 from EvoTestOps/feature/parallelize-llm-calls #240

Workflow file for this run

name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-typecheck-client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Client - Cache node_modules
uses: actions/cache@v4
with:
path: ~/.npm
key: node-modules-${{ runner.os }}-${{ hashFiles('client/package-lock.json') }}
restore-keys: |
node-modules-${{ runner.os }}-
- name: Client - Install dependencies
run: npm ci --cache ~/.npm
working-directory: client
- name: Client - Run Typecheck
run: npm run typecheck
working-directory: client
- name: Client - Run ESLint
run: npm run lint
working-directory: client
lint-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v6
with:
python-version-file: "server/.python-version"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.18"
- name: Install the project
run: uv sync --locked --all-extras --dev
working-directory: ./server
- name: Lint project
run: uvx ruff check
working-directory: ./server
unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run backend tests
run: make backend-unit
backend-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v6
with:
python-version-file: "server/.python-version"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.18"
- name: Install the project
run: uv sync --locked --all-extras --dev
working-directory: ./server
- name: Run backend tests
run: make backend-test
build-client:
runs-on: ubuntu-latest
needs: [lint-typecheck-client]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Client - Cache node_modules
uses: actions/cache@v4
with:
path: ~/.npm
key: node-modules-${{ runner.os }}-${{ hashFiles('client/package-lock.json') }}
restore-keys: |
node-modules-${{ runner.os }}-
- name: Client - Install dependencies
run: npm ci --cache ~/.npm
working-directory: client
- name: Client - Build client
run: npm run build
working-directory: client
e2e-test:
runs-on: ubuntu-latest
needs: build-client
timeout-minutes: 60
env:
APP_ENV: test
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v6
with:
python-version-file: "server/.python-version"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.18"
- name: Install the project
run: uv sync --locked --all-extras --dev
working-directory: ./server
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Client - Cache node_modules
uses: actions/cache@v4
with:
path: ~/.npm
key: node-modules-${{ runner.os }}-${{ hashFiles('client/package-lock.json') }}
restore-keys: |
node-modules-${{ runner.os }}-
- name: Client - Install dependencies
run: npm ci --cache ~/.npm
working-directory: client
- name: Install Playwright Browsers
run: npx playwright install --with-deps
working-directory: client
- name: Run Playwright tests
run: npx playwright test
working-directory: client
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: client/playwright-report/
retention-days: 30