Skip to content

feat(ai): establish layered code-intelligence stack #671

feat(ai): establish layered code-intelligence stack

feat(ai): establish layered code-intelligence stack #671

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
GO_VERSION: "1.26.8"
NODE_VERSION: "24"
DATABASE_URL: "file:./data/dev.db?_journal_mode=WAL"
NATS_URL: "nats://localhost:4222"
JWT_SECRET: "ci-secret-change-me-min-32-chars-long"
SECRET_ENCRYPTION_KEYS: "primary:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
NEXT_PUBLIC_API_URL: "http://localhost:8080"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: |
apps/web/package-lock.json
packages/sdk/typescript/package-lock.json
- name: Install web dependencies
run: cd apps/web && npm ci
- name: Install golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.13.2
install-only: true
- name: Go lint and vet
run: make lint-go
- name: Web lint
run: make lint-web
- name: Web typecheck
run: cd apps/web && npm run typecheck
- name: SDK typecheck
run: make lint-sdk
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: |
apps/web/package-lock.json
packages/sdk/typescript/package-lock.json
- name: Install web dependencies
run: cd apps/web && npm ci
- name: Start NATS
run: docker compose up -d --wait nats
- name: Run Go and SDK tests
run: make test
- name: Run web tests
run: cd apps/web && npm test
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: |
apps/web/package-lock.json
packages/sdk/typescript/package-lock.json
- name: Install web dependencies
run: cd apps/web && npm ci
- name: Build all
run: make build