You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.9 KiB
YAML

name: ci
on: [push, pull_request]
jobs:
backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v3
- run: uv sync
working-directory: backend
- run: uv run ruff check .
working-directory: backend
- run: uv run pytest -q # federation/nplus1/golden 포함
working-directory: backend
frontend-unit:
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, cache-dependency-path: frontend/pnpm-lock.yaml }
- run: pnpm install --frozen-lockfile
working-directory: frontend
- run: pnpm exec tsc --noEmit
working-directory: frontend
- run: pnpm lint
working-directory: frontend
- run: pnpm test
working-directory: frontend
e2e:
runs-on: ubuntu-latest
needs: [backend, frontend-unit]
env:
LLM_PROVIDER: heuristic # CI는 Ollama 없이 결정론적
ARI_ALLOW_TEST_RESET: "1"
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v3
- run: uv sync && uv run alembic upgrade head && uv run python -m app.seed
working-directory: backend
- run: ARI_ALLOW_TEST_RESET=1 LLM_PROVIDER=heuristic uv run uvicorn app.main:app --port 31800 &
working-directory: backend
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with: { node-version: 20, cache: pnpm, cache-dependency-path: frontend/pnpm-lock.yaml }
- run: pnpm install --frozen-lockfile
working-directory: frontend
- run: pnpm exec playwright install --with-deps chromium
working-directory: frontend
- run: pnpm exec playwright test --workers=1
working-directory: frontend
- uses: actions/upload-artifact@v4
if: failure()
with: { name: playwright-report, path: frontend/playwright-report }