Build, test & CI
Makefile (canonical entry point)
The Makefile auto-installs pinned tool versions into ./bin/.
| Task | Command |
|---|---|
| Build the binary | make build |
| Unit tests | make test |
| A single Go test | go test ./app/<pkg>/ -run TestName (after make .gen mocks) |
| Lint | make lint |
| Everything | make default (lint test test-integration) |
| Regenerate Wire | make .gen |
| Regenerate mocks | make mocks |
| Dev server + tester UI | make -j=2 dev.run |
| Build the docs site | make docs.build (or sh website/build.sh) |
| Serve the docs site | make docs.serve |
Code generation
- Wire —
wire_gen.gois generated fromwire.go+wire_bindings.go. Regenerate withmake .genwhenever providers/bindings change. - Mocks — mockery mirrors
app/interfaces intomocks/. Regenerate withmake mockswhenever an interface changes.
Testing
Unit tests live beside the code (*_test.go) and import generated mocks. The app/pdfrender/cdp render path and the loaders are well covered; the validate command doubles as an integration smoke test that renders every example.
Robot Framework integration tests live under integration-tests/ and run via Earthly with Docker Compose (not through the Go Makefile). They cover the callback event, examples, HTTP errors, schema, static serving, status, templates, and the tester UI.
CI & images
- GitLab CI (
.gitlab-ci.yml) runs checks and builds/pushes images via Earthly; it also has apagesjob that builds the documentation site (this site) with Zola and publishes it to GitLab Pages. - Earthly (
Earthfile) is the build system:earthly +all-checksruns Go tests/lint, cspell, editorconfig checks, the tester build, and integration tests;earthly +all-imagesbuilds the multi-arch Chromium/Firefox images.
Documentation build
The site is Zola + AdiDoks under website/. website/build.sh copies the canonical docs/ into the Zola content tree, generates llms.txt/llms-full.txt and the raw .md mirror, renders the Gallery from live local renders (building the binary and rendering every example), and runs Zola. See the repo’s website/ directory.
Version control & contribution policy
The repo uses colocated jj + git; commits are kept single-purpose and every notable change is recorded in CHANGELOG.md. See AGENTS.md for the full policy (quality gates, preparatory-refactor rule).