Skip to content

docs: add CLAUDE.md for Claude Code guidance #297

docs: add CLAUDE.md for Claude Code guidance

docs: add CLAUDE.md for Claude Code guidance #297

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
id-token: write
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pr-title:
name: Validate PR Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
quality:
name: Quality (Lint & Vuln)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: "**/*.sum"
- name: Install tools
# Use make tools to install versions pinned in go.mod/tools.go
# With the cache above, this will be a near-instant no-op if binaries exist
run: make tools
- name: Lint
run: make lint
- name: Vulnerability scan
run: make vuln
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: |
tools/tools.go
go.mod
- name: Test with coverage
run: make test-coverage
- name: Example smoke (Postgres, SQLite)
run: |
go test ./examples/hello-postgres/...
go test ./examples/hello-sqlite/...
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: .coverage/coverage.out
fail_ci_if_error: true
use_oidc: true
cli-smoke:
name: CLI Smoke Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: |
tools/tools.go
go.mod
- name: Build CLI
run: make cli-smoke-build
- name: Test CLI scaffolding
run: make cli-smoke-scaffold