Files
mesh-delivery/modules/mesh-delivery-pipeline/module.json
T
jschoubben 38a2492394 RN3 (publish half): a pipeline starts by compare-and-set on its key, and a package-published starts one per dependent behind
A start writes the pipeline's key (watched branch, source revision, module) only when it is absent and says
pipeline-started; a second start of the same revision and module writes nothing. A package-published asks the
catalog's outdated for that package on that branch, a kept call, and starts a pipeline for each dependent behind
by kind 1, keyed by the publication's branch and source revision. The start on take-in.taken, and a gathered
group's one pipeline per branch, wait for take-in.taken's body (design 47 G §476, in review).

Builds: design 47 G §54, §103, §334, §53, §75

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:34:26 +01:00

159 lines
3.2 KiB
JSON

{
"module": "mesh-delivery-pipeline",
"version": "0.1",
"slug": "pipeline",
"claims": [
{
"name": "mesh-pipeline-runner",
"scope": "mesh",
"serves": [
"run",
"start",
"show",
"list",
"stands",
"why-carried",
"kept",
"review",
"rerun",
"accept",
"cancel",
"ask-again"
]
}
],
"tools": [
"pipeline_first_views",
"pipeline_first_view_again"
],
"consumes": [
"mesh-delivery-indexer.take-in.taken",
"mesh-builds.package-published",
"mesh-builds.toolchain-agreed",
"operator-channel.decided",
"node-build-go.step-ended",
"node-build-node.step-ended",
"node-build-image.step-ended",
"mesh-wants.step-ended",
"mesh-catalog.registration-changed",
"mesh-catalog.catalog-revision",
"mesh-conditions.findings-asked"
],
"invokes": [
"seat:mesh-catalog.registrations",
"seat:mesh-catalog.revision",
"seat:mesh-hand-acts.hand-act",
"seat:mesh-catalog.outdated"
],
"state": [
{
"name": "pipelines",
"history": 1
},
{
"name": "kept",
"history": 1
},
{
"name": "aged",
"history": 1
},
{
"name": "findings",
"history": 1
},
{
"name": "first-views",
"history": 1
}
],
"streams": [
{
"name": "step-log",
"events": [
"step-log.**"
],
"max-mib": 128
},
{
"name": "mesh-delivery-pipeline-findings",
"events": [
"finding-written.*",
"finding-cleared.*",
"findings-stated.*"
],
"max-age-days": 7,
"max-mib": 16
}
],
"objects": [
{
"name": "step-outputs",
"max-mib": 1024
}
],
"own-secrets": {
"broker": "${dir:state}/broker"
},
"secrets-owner": "mesh-delivery-pipeline",
"resources": [
{
"id": "account",
"type": "user",
"name": "mesh-delivery-pipeline",
"shell": "/usr/bin/nologin",
"home": "/var/lib/mesh-delivery-pipeline"
},
{
"id": "state",
"type": "directory",
"mode": "0700",
"owner": "mesh-delivery-pipeline",
"place": ".",
"unknown": "program"
},
{
"id": "pipeline",
"type": "process",
"name": "mesh-delivery-pipeline",
"artifact": "program",
"run": [
"./mesh-delivery-pipeline"
],
"env": {
"MESH_BROKER_FILE": "${dir:state}/broker"
},
"user": "mesh-delivery-pipeline",
"health": {
"kind": "unit"
}
}
],
"build": {
"artifacts": [
{
"name": "program",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-delivery-pipeline",
"binary": "mesh-delivery-pipeline",
"needs": [
"mesh-delivery-assigner:program"
]
},
{
"name": "tools",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-delivery-pipeline-tools",
"binary": "mesh-delivery-pipeline-tools",
"loads": [
"mesh-delivery-pipeline-tools"
]
}
]
}
}