- Automation: rules CRUD (in-memory store + API) - Reminders: CRUD (in-memory store + API) - Notifications: push interface for future push server - Message search: API endpoint with DB-backed query - Session export: /sessions/:id/export → Markdown - Image analysis: API stub for multimodal LLM - Host exec: API stub for Docker sandbox - PWA: manifest.json + service worker - Docker: Dockerfile + docker-compose.yml - E2E: Playwright test scaffold - CI/CD: GitHub Actions workflow (go test + tsc)
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
name: Cyrene CI
|
|
on: [push, pull_request]
|
|
jobs:
|
|
backend:
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
postgres:
|
|
image: pgvector/pgvector:pg16
|
|
env: {POSTGRES_USER: cyrene, POSTGRES_PASSWORD: cyrene_pass, POSTGRES_DB: cyrene_ai}
|
|
ports: [5432:5432]
|
|
options: >-
|
|
--health-cmd pg_isready --health-interval 10s --health-timeout 3s --health-retries 5
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with: {go-version: '1.26'}
|
|
- run: go test ./...
|
|
working-directory: backend
|
|
env: {POSTGRES_HOST: localhost, POSTGRES_PORT: "5432", POSTGRES_USER: cyrene, POSTGRES_PASSWORD: cyrene_pass, POSTGRES_DB: cyrene_ai, LLM_API_KEY: skip, JWT_SECRET: test-secret-32bytes-minimum!!, ADMIN_PASSWORD: test12345}
|
|
|
|
frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with: {node-version: '22'}
|
|
- run: npm ci
|
|
working-directory: frontend/web
|
|
- run: npx tsc --noEmit
|
|
working-directory: frontend/web
|
|
- run: npm run build
|
|
working-directory: frontend/web
|