ADR 0615 §1: the builder invokes indexer_read_modules, _manifests, _candidates and assigner_read_placement, consumes their views families and reads none of the four buckets; it keeps first-views and findings. The lead's ruling: an owner that is down never holds the start; the modules are built once the modules', manifests' and candidates' first views are answered, the placement is followed into the toolchain gate once its first view is, and until then the gate passes every report on as before the placement settled. Tools builder_first_views and builder_first_view_again. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
120 lines
2.9 KiB
JSON
120 lines
2.9 KiB
JSON
{
|
|
"module": "mesh-delivery-builder",
|
|
"version": "1",
|
|
"slug": "builder",
|
|
"tools": [
|
|
"builder_announce_again",
|
|
"builder_ask_again",
|
|
"builder_build_again",
|
|
"builder_builds_since",
|
|
"builder_seat_queue",
|
|
"builder_stuck",
|
|
"builder_first_views",
|
|
"builder_first_view_again"
|
|
],
|
|
"emits": [
|
|
"build.asked-again"
|
|
],
|
|
"consumes": [
|
|
"mesh-artifact-sweep.artifacts-gone",
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported",
|
|
"mesh-delivery-assigner.views.placement",
|
|
"mesh-delivery-indexer.views.candidates",
|
|
"mesh-delivery-indexer.views.manifests",
|
|
"mesh-delivery-indexer.views.modules"
|
|
],
|
|
"invokes": [
|
|
"seat:mesh-artifact-sweep.held",
|
|
"mesh-delivery-assigner.assigner_read_placement",
|
|
"mesh-delivery-indexer.indexer_read_candidates",
|
|
"mesh-delivery-indexer.indexer_read_manifests",
|
|
"mesh-delivery-indexer.indexer_read_modules"
|
|
],
|
|
"state": [
|
|
{ "name": "builds", "history": 5 },
|
|
{ "name": "hearing", "history": 1 },
|
|
{ "name": "instances", "history": 1 },
|
|
{ "name": "queues", "history": 1 },
|
|
{ "name": "reasks", "history": 1 },
|
|
{ "name": "first-views", "history": 1 },
|
|
{ "name": "findings", "history": 1 }
|
|
],
|
|
"logs": [
|
|
{ "name": "build-log", "max-age-days": 30 }
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.steps",
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-image.steps",
|
|
"mesh-build-node.steps",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-delivery-gate.source"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-image",
|
|
"node-build-node"
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-builder",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-builder",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-builder"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-builder",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "builder",
|
|
"type": "process",
|
|
"name": "mesh-delivery-builder",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-builder"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-builder",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder",
|
|
"binary": "mesh-delivery-builder"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder-tools",
|
|
"binary": "mesh-delivery-builder-tools",
|
|
"loads": [
|
|
"mesh-delivery-builder-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|