podCI¶
podCI is a local-first, rootless Podman runner that executes repeatable build/test jobs inside pinned “template” images. It is designed for teams that want CI-like behavior on developer machines without turning their workstation into a snowflake.
What podCI does¶
- Runs named jobs composed of ordered steps inside containers.
- Derives
namespaceandenv_iddeterministically so caches and artifacts are isolated and reproducible. - Uses podCI-built template images (rustfmt/clippy/nextest/expand/binutils/audit/deny) so toolchains are consistent.
- Produces machine-readable manifests and JSONL logs for CI ingestion.
- Provides safe prune behaviors for namespaced caches.
What podCI does not do¶
- It is not a build system (it runs your build tools).
- It is not a container runtime (it drives Podman).
- It does not promise bit-for-bit identical artifacts across differing CPUs/OSes.
Execution model¶
flowchart LR
A[Config: profiles/jobs/steps] --> B[Derive namespace + env_id]
B --> C[Select template image (pinned)]
C --> D[Run step in container]
D --> E[Write logs (jsonl) + manifest (json)]
D --> F[Use namespaced caches]
E --> G[CI upload / local inspection]
Next steps¶
- Start with the Quickstart section.
- For configuration details, see Configuration → Config reference.
- For policy and gates, see Development → Supply-chain gates.
- For planned features, see Roadmap.