PipelineProject operator — seanfarm CI/CD registration as data (libseanfarm harness)
- Go 93.4%
- Makefile 3%
- Go Template 2.9%
- Dockerfile 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| api/v1alpha1 | ||
| cmd | ||
| config | ||
| hack | ||
| internal | ||
| test/crds | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| ci-test.Dockerfile | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| operator.mk | ||
| PROJECT | ||
| README.md | ||
| VERSION | ||
pipelines-operator
Registers repositories with the seanfarm CI/CD pipelines as data. Apply a
~20-line PipelineProject and the operator renders everything a hand-authored
sean/pipelines projects/<name>/ directory used to carry:
apiVersion: pipelines.sean.farm/v1alpha1
kind: PipelineProject
metadata: { name: hello-lib, namespace: workflows-alice }
spec:
repo: sean/hello-lib
taxonomy: go-library-tag
release: { cadence: "0 */6 * * *" } # optional; absent = ship-only
build:
script: |
#!/usr/bin/env sh
set -eu
buildctl build --frontend dockerfile.v0 \
--opt context="https://code.sean.farm/${REPO}.git#${REF}" \
--opt build-arg:GOPROXY=http://athens.athens.svc.cluster.local:3000,direct \
--opt filename=ci.Dockerfile
Changing pipeline behavior (cadence, build script, protection) is a field
patch; removing the CR removes the registration. The release ACT stays the
ship API (pipectl ship / the dashboard Ship button) — never repo content.
Built on the shared libseanfarm-operator
reconcile harness, like the other four in-house operators. make test runs
envtest (full lifecycle: apply, prune-on-change, finalizer cleanup).