Files
cproof-context/build/ci.md
jabber.developer2 22977846a3 docs: split context into layered, agent-oriented files
Replace the single file-structure.md with a stratified layout designed
for AI/agent skill consumption: tables and concrete identifiers over
prose, files loaded on demand, content separated by churn rate.

Layers:
- architecture/  stable structural reference (overview, source-map,
                 test-map, data-flow)
- patterns/      memory, commands, autocomplete, events, xmpp,
                 encryption, ui, plugins
- testing/       unit-tests, stubs, functional-tests, bench
- build/         local, docker, ci
- playbooks/     add-command, add-test, add-autocomplete,
                 add-event-handler, add-encryption
- gotchas.md     append-only dated entries (seven seed entries)
- wip/           branch-specific notes; deleted on merge to master

Stable layers describe cproof on master only. In-flight feature
branches (currently feat/ai) get a single file under wip/.

INDEX.md is the entry map with churn labels; SKILL.md is the
always-loaded skill hint pointing to it.
2026-04-30 20:52:06 +03:00

1.8 KiB

CI

Workflows

.github/workflows/:

Workflow Purpose
ci-code.yml Build + unit tests across the Linux distro matrix.
ci-api-docs.yml API/plugin docs build check.

Plus an OpenBSD pipeline at .builds/openbsd.yml (sourcehut-style builds).

Distro matrix

The code CI runs across the Dockerfiles at repo root: Debian, Ubuntu, Fedora, Tumbleweed, Arch. Each job builds the matching image, mounts the checkout, and runs autogen.sh && configure && make && make check.

Log naming

CI logs in this project are named:

ci-code-Linux (arch)-NNNN.log

— where arch is the distro flavour (debian, ubuntu, fedora, tumbleweed, arch) and NNNN is the run number. Use the distro name to pick the right log when triaging matrix failures.

Known matrix-specific notes

  • Arch (Dockerfile.arch): Pikaur in the image was hit by a duplicated-flag failure (cf. cproof commit 0722dc9e3). If Dockerfile.arch changes, re-check the Pikaur invocation.
  • OpenBSD (.builds/openbsd.yml): runs on sourcehut, not GitHub. Failures there don't appear in the GitHub PR check list.

Reproducing a CI failure locally

  1. Identify the failing distro from the log name.
  2. Build the matching Dockerfile locally — see build/docker.md.
  3. Run the same autogen && configure && make && make check chain inside the container.
  4. Compare versions of any drifting dependency between the image and the CI image (apt list --installed or equivalent inside both).

What CI does not run

  • Functional tests (tests/functionaltests/) — require a test XMPP server.
  • Benches (tests/bench/) — not part of CI.

If you need either, run them locally inside the Docker image — see testing/functional-tests.md and testing/bench.md.