This directory contains CI/CD workflows for OmniLens.
Purpose: Run unit tests for components, utilities, and hooks.
Characteristics:
- ✅ Fast execution (no server or database needed)
- ✅ Runs in parallel with other test workflows
- ✅ Generates coverage reports
- ✅ No external dependencies
Triggers:
- Push to
mainbranch - Pull requests to
mainbranch - Manual dispatch
Artifacts:
unit-coverage/- Coverage reports (HTML, JSON, LCOV)
Purpose: Test API route handlers in isolation.
Characteristics:
- ✅ Requires PostgreSQL database
- ✅ Tests route handlers directly (no server needed)
- ✅ Generates coverage reports
- ✅ Runs in parallel with unit tests
Triggers:
- Push to
mainbranch - Pull requests to
mainbranch - Manual dispatch
Services:
- PostgreSQL 15 (for database-dependent routes)
Artifacts:
api-coverage/- Coverage reports (HTML, JSON, LCOV)
Purpose: End-to-end tests using Playwright.
Characteristics:
- ⏱️ Slower execution (requires running server)
- ✅ Tests full user flows
- ✅ Requires PostgreSQL database
- ✅ Requires running Next.js dev server
Triggers:
- Push to
mainbranch - Pull requests to
mainbranch - Manual dispatch
Services:
- PostgreSQL 15 (for database)
Steps:
- Install Playwright browsers
- Setup database schema
- Start Next.js dev server
- Run Playwright tests
Artifacts:
playwright-report/- Playwright HTML test report
- Validates and builds the application
- Runs linting checks
- Runs health/infrastructure tests
- Validates server health and connectivity
- Tests GitHub status API integration
- Validates external API connectivity
All test workflows run in parallel when triggered, providing:
- ⚡ Faster CI feedback
- 🔍 Clear visibility into which test suite failed
- 📊 Independent coverage reports
- 🎯 Targeted debugging
Coverage reports are uploaded as artifacts and can be downloaded from workflow runs:
- Go to the workflow run
- Scroll to "Artifacts" section
- Download the coverage artifact
- Extract and open
index.htmlin a browser
Test workflows require the following secrets:
GH_CLIENT_ID- GitHub OAuth client IDGH_CLIENT_SECRET- GitHub OAuth client secretBETTER_AUTH_SECRET- Auth secretDB_PASSWORD- PostgreSQL passwordDB_USER- PostgreSQL userDB_NAME- PostgreSQL database name
All workflows use tenki-standard-autoscale runner for consistent execution environment.