name: CI on: push: branches: [main] pull_request: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: frontend: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 22 cache: pnpm - name: Install dependencies run: pnpm install - name: Build, type check, and test run: pnpm build && pnpm typecheck && pnpm test backend: runs-on: ubuntu-latest services: postgres: image: pgvector/pgvector:pg17 env: POSTGRES_DB: multica POSTGRES_USER: multica POSTGRES_PASSWORD: multica ports: - 5432:5432 options: >- --health-cmd "pg_isready -U multica -d multica" --health-interval 5s --health-timeout 5s --health-retries 20 env: DATABASE_URL: postgres://multica:multica@localhost:5432/multica?sslmode=disable steps: - name: Checkout uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v5 with: go-version: "1.24" cache-dependency-path: server/go.sum - name: Build run: cd server && go build ./... - name: Run migrations run: cd server && go run ./cmd/migrate up - name: Test run: cd server && go test ./...