Expand description
The nomisync CI pipeline, as a program.
Invoked from .forgejo/workflows/ci.yml as cargo run -p xtask -- <command>.
Deliberately dependency-light: this is the first thing a CI job builds, and
it starts the database the rest of the workspace compiles against, so it
must not itself need one.
What stays outside: .forgejo/scripts/deploy.sh runs in a kaniko init
container that has no Rust toolchain, and ci/builder/build.sh builds the
container image this program runs inside.
Modulesยง
- artifact ๐
- The artifact layout: object keys, per-kind provenance, and the manifest.
- deploy_
render ๐ - Guards
.forgejo/scripts/deploy.shโs Job rendering. - heartbeat ๐
- Keeps a jobโs log stream alive across long silent phases.
- postgres ๐
- A throwaway Postgres for the lifetime of one command.
- publish ๐
- Publishing an artifact to object storage, and reading one back.
- release ๐
- The artifact-producing phases.
- watchdog ๐
- Runs a command that is expected to keep talking, and diagnoses it if it stops.
Structsยง
- Cli ๐
Enumsยง
- Command ๐
Functionsยง
- finalize ๐
- The single writer of the manifest.
- main ๐
- produce ๐
- with_
artifacts ๐ - True only where the workflow decided this run may hold the artifacts key โ master. A PR run builds and verifies everything with no credential mounted.
- with_
postgres ๐ - Starts Postgres, exports DATABASE_URL, and runs the given command.