name: CI on: push: branches: - main - "*" pull_request: branches: - main jobs: ci: name: Lint, Test & Build runs-on: ubuntu-24.04 services: postgres: image: pgvector/pgvector:pg16 env: POSTGRES_USER: memento_test POSTGRES_PASSWORD: memento_test POSTGRES_DB: memento_test ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 5 defaults: run: working-directory: memento-note env: DATABASE_URL: "postgresql://memento_test:memento_test@localhost:5432/memento_test" steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node 22 uses: actions/setup-node@v4 with: node-version: "22" cache: "npm" cache-dependency-path: memento-note/package-lock.json - name: Install dependencies run: npm ci - name: Generate Prisma client run: npx prisma generate - name: Setup test database run: | npx prisma migrate deploy PGPASSWORD=memento_test psql -h localhost -U memento_test -d memento_test -c "CREATE EXTENSION IF NOT EXISTS vector;" - name: Lint run: npm run lint - name: Unit tests run: npm run test:unit - name: Build run: npm run build