{ "module": "mesh-delivery-builder", "version": "0.1", "slug": "builder", "claims": [ { "name": "mesh-builds", "scope": "mesh", "serves": [ "reserved" ] } ], "tools": [ "builder_announce_again", "builder_seat_list", "builder_seat_list_again", "builder_ask_again", "builder_bounds", "builder_build", "builder_build_again", "builder_builds_since", "builder_engine_reads", "builder_floor_again", "builder_floor_waits", "builder_old_form", "builder_publish_again", "builder_publish_queue", "builder_reserved", "builder_release", "builder_reserved_drop", "builder_seat_queue", "builder_stuck", "builder_toolchains", "builder_toolchains_drop", "builder_waits", "builder_versions", "builder_first_views", "builder_first_view_again" ], "emits": [ "build.asked-again", "version.old-form-closed" ], "consumes": [ "mesh-conditions.findings-asked", "container-image-registry.kept", "container-image-registry.published", "container-image-registry.refused", "container-image-registry.removed", "go-package-registry.kept", "go-package-registry.published", "go-package-registry.refused", "go-package-registry.removed", "mesh-artifact-sweep.artifacts-gone", "mesh-catalog.manifest-accepted", "mesh-catalog.seat-definition-changed", "mesh-catalog.seat-definition-removed", "mesh-catalog.version-released", "mesh-catalog.versions-filled", "mesh-conditions.condition-cleared", "node-build-go.toolchain-reported", "node-build-node.toolchain-reported", "node-engine.manifest-reads-changed", "node-engine.running", "operator-channel.decided", "npm-package-registry.kept", "npm-package-registry.published", "npm-package-registry.refused", "npm-package-registry.removed", "oci-artifact-registry.kept", "oci-artifact-registry.published", "oci-artifact-registry.refused", "oci-artifact-registry.removed", "seat:mesh-module-assigner.views.assignments", "seat:mesh-module-assigner.views.seat-holders", "mesh-catalog.catalog-revision", "mesh-catalog.registration-changed", "mesh-delivery.source-moved" ], "invokes": [ "seat:container-image-registry.remove", "seat:container-image-registry.versions", "seat:git.tag", "seat:git.tags", "seat:go-package-registry.remove", "seat:go-package-registry.versions", "seat:mesh-artifact-sweep.held", "seat:mesh-builds.reserved", "seat:mesh-catalog.versions", "seat:mesh-hand-acts.hand-act", "seat:mesh-module-assigner.assignments", "seat:mesh-watchdogs.presence", "seat:node-build-go.drop", "seat:node-build-image.drop", "seat:node-build-node.drop", "seat:node-engine.manifest-reads", "seat:npm-package-registry.remove", "seat:npm-package-registry.versions", "seat:oci-artifact-registry.remove", "seat:oci-artifact-registry.versions", "seat:container-image-registry.publish", "seat:go-package-registry.publish", "seat:npm-package-registry.publish", "seat:oci-artifact-registry.publish", "seat:mesh-catalog.entry", "seat:mesh-catalog.registrations", "seat:mesh-catalog.seat-definitions", "seat:mesh-catalog.revision", "seat:mesh-delivery.source", "seat:node-build-go.accept.delivery", "seat:node-build-node.accept.delivery", "seat:node-build-image.accept.delivery" ], "state": [ { "name": "builds", "history": 5 }, { "name": "engine-reads", "history": 1 }, { "name": "findings", "history": 5 }, { "name": "floor-waits", "history": 1 }, { "name": "hearing", "history": 1 }, { "name": "instances", "history": 1 }, { "name": "old-form", "history": 1 }, { "name": "bounds", "history": 1, "key-ttl": true }, { "name": "queues", "history": 1 }, { "name": "toolchains-heard", "history": 1 }, { "name": "waits", "history": 1, "max-mib": 4 }, { "name": "reserved", "history": 1 }, { "name": "publish-queue", "history": 1, "max-mib": 4 }, { "name": "acted", "history": 1, "max-mib": 1 }, { "name": "asked", "history": 1 }, { "name": "reasks", "history": 1 }, { "name": "versions", "history": 1 }, { "name": "first-views", "history": 1 } ], "streams": [ { "name": "waits", "events": ["wait-held.**", "wait-ended.**"], "max-age-days": 7, "max-mib": 16 }, { "name": "mesh-delivery-builder-builds", "events": ["build.ended.**"], "max-age-days": 7, "max-mib": 16, "last-per-subject": true }, { "name": "mesh-delivery-builder-findings", "events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"], "max-age-days": 7, "max-mib": 16 } ], "config": { "toolchain-wait-minutes": { "type": "number", "description": "minutes an entry waits for the agreed toolchain of its language to name the version its fingerprint names (design 47 G section 672); a bound a whole test sets in seconds.", "minimum": 1, "maximum": 10080, "trusted": false, "default": 60 }, "republish-max-versions": { "type": "number", "description": "the most versions one event of a registry holder queues to publish again, newest first (design 47 G section 588); the rest wait for the next event or builder_publish_again.", "minimum": 1, "maximum": 10000, "trusted": false, "default": 50 } }, "logs": [ { "name": "build-log", "max-age-days": 30, "max-mib": 3072 } ], "reads": [ "seat:mesh-module-assigner.assignments", "seat:node-build-go.steps", "seat:node-build-image.steps", "seat:node-build-node.steps" ], "uses": [ "node-build-go", "node-build-image", "node-build-node", "operator-channel" ], "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": "toolchain-wait", "type": "file", "path": "${dir:state}/toolchain-wait-minutes", "owner": "mesh-delivery-builder", "mode": "0600", "content": "${config:toolchain-wait-minutes}" }, { "id": "republish-max", "type": "file", "path": "${dir:state}/republish-max-versions", "owner": "mesh-delivery-builder", "mode": "0600", "content": "${config:republish-max-versions}" }, { "id": "builder", "type": "process", "name": "mesh-delivery-builder", "artifact": "program", "serves": [ "seat:mesh-builds.reserved" ], "run": [ "./mesh-delivery-builder" ], "env": { "MESH_BROKER_FILE": "${dir:state}/broker", "MESH_BUILDER_TOOLCHAIN_WAIT_FILE": "${dir:state}/toolchain-wait-minutes", "MESH_BUILDER_REPUBLISH_MAX_FILE": "${dir:state}/republish-max-versions" }, "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" ] } ] } }