name: ci on: push: branches: [main] pull_request: jobs: go: runs-on: ubuntu-latest services: postgres: image: postgres:16-alpine env: POSTGRES_USER: artex POSTGRES_PASSWORD: testpass POSTGRES_DB: artextest ports: - 5432:5432 options: >- --health-cmd "pg_isready -U artex" --health-interval 5s --health-timeout 5s --health-retries 10 env: ARTEX_PG_DSN: postgres://artex:testpass@localhost:5432/artextest?sslmode=disable steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - run: go build ./... - run: go vet ./... # Skipped tests, tracked in issue #9: # - TestInterceptFilterHTTP, TestGraphOverviewExpandsAssociatedCompanyScope, # TestCaptureApprovalLifecycle: fail on unmodified upstream code with a # fresh database. # - TestSideUsageRecordedOnceOnConsumerCancellation: concurrency/cancellation # test that passes locally but is timing-sensitive on 2-core CI runners. # They now skip themselves in code (t.Skip with a pointer to the issue). - name: go test # -p 1: package test suites share the single postgres service; running # them in parallel makes packages delete each other's rows (observed # as rotating failures in the agent package). Serial package execution # keeps the database state deterministic. run: go test -p 1 ./... web: runs-on: ubuntu-latest defaults: run: working-directory: web steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "22" cache: npm cache-dependency-path: web/package-lock.json - run: npm ci - run: npx tsc --noEmit - run: npm run build:static