Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,90 @@ jobs:
with:
python-version: "3.12"
- run: python scripts/scan_secrets.py

playwright-tests:
name: Playwright E2E Tests
runs-on: ubuntu-latest
needs: [backend-tests, frontend-build]
steps:
- uses: actions/checkout@v4

# Setup Python for backend
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
cache-dependency-path: backend/requirements.txt

# Setup Node for frontend
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend/package-lock.json

# Install backend dependencies
- name: Install backend dependencies
run: pip install -r backend/requirements.txt

# Install frontend dependencies and Playwright
- name: Install frontend dependencies
working-directory: frontend
run: |
npm ci
npx playwright install --with-deps chromium

# Start backend API server
- name: Start backend API
run: |
cd backend
uvicorn app.main:app --host 127.0.0.1 --port 8000 &
sleep 5
env:
PYTHONPATH: backend
DATABASE_URL: sqlite:///./test-e2e.sqlite3
AUTH_MODE: local
LLM_PROVIDER: mock

# Start backend worker
- name: Start backend worker
run: |
cd backend
python -m app.jobs.worker &
sleep 2
env:
PYTHONPATH: backend
DATABASE_URL: sqlite:///./test-e2e.sqlite3
AUTH_MODE: local
LLM_PROVIDER: mock

# Start frontend dev server
- name: Start frontend
working-directory: frontend
run: |
npm run dev &
sleep 10
env:
NEXT_PUBLIC_API_URL: http://127.0.0.1:8000

# Wait for services to be ready
- name: Wait for services
run: |
timeout 30 bash -c 'until curl -s http://127.0.0.1:8000/api/health; do sleep 1; done'
timeout 30 bash -c 'until curl -s http://127.0.0.1:3000; do sleep 1; done'

# Run Playwright tests
- name: Run Playwright tests
working-directory: frontend
run: npx playwright test adaptive-learning.spec.ts --reporter=list
env:
CI: true

# Upload test results on failure
- name: Upload test results
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-report
path: frontend/test-results/
retention-days: 7
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ prototype schema is not migrated automatically. `docs/PRD.md` is the original su
requirements document; its historical “Built” labels are not implementation evidence. Prompts are versioned in
`backend/app/providers/llm.py`; asset settings record model/contract/prompt version.

See [architecture](docs/ARCHITECTURE.md), [design mapping](docs/DESIGN_IMPLEMENTATION.md)
and [Supabase deployment](docs/DEPLOYMENT.md).
See [architecture](docs/ARCHITECTURE.md), [design mapping](docs/DESIGN_IMPLEMENTATION.md),
[Supabase deployment](docs/DEPLOYMENT.md), and the [AWS EC2 deployment readiness guide](docs/DEPLOYMENT_EC2.md). The root Compose file is for local development only; it is not a production EC2 manifest.

## Supabase staging integration

Expand Down
Loading
Loading