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.
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# 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`.
|