Skip to main content

max / makenotwork

2.2 KB · 44 lines History Blame Raw
1 # pom's pipeline. Design: wiki [[sando-bento-boundary]].
2 #
3 # pom is the first product Sando ships without building. It runs on astra
4 # (aarch64) and on the Hetzner box (x86_64), and `build::run` compiles only on
5 # one configured host, so Sando could never build half of this release without
6 # breaking its own never-cross-compile rule. Bento already fans out native
7 # builds across both machines. So Bento builds and packages; Sando decides
8 # whether a thing advances a stage, and performs the advance.
9 #
10 # There is deliberately no `build_host` here. Absent is not "build anywhere" —
11 # it declares the product intake-only, and `build::run` refuses rather than
12 # picking a machine. Naming a build host for a product Sando must not build
13 # would be a claim the code would then be free to act on. Ship pom with
14 # `POST /apps/pom/intake`.
15
16 topology_path = "../pom-topology.toml"
17
18 # Never shared with another product: two products publishing into one release
19 # root would publish into each other's content-addressed history, and the
20 # digest that names a bundle says nothing about which product it belongs to.
21 workdir = "/srv/sando/pom/work"
22 release_root = "/srv/sando/pom/releases"
23 logs_root = "/srv/sando/pom/logs"
24
25 # The bin the systemd unit's ExecStart points at, and the file the node-side
26 # install wrapper installs. pom ships one binary.
27 bin_names = ["pom"]
28
29 # No `platform` key. A Sando-built product inherits its platform from its config
30 # because there is only one answer; pom has two, and the trustworthy answer for
31 # a given bundle is the one in that bundle's own artifact record. Each node
32 # declares what it runs (see pom-topology.toml) and a bundle is only ever placed
33 # on a node whose platform it matches.
34
35 # No [[migration_check]] and no [[test_target]] beyond the defaults, and neither
36 # is reachable: pom's tiers configure no `cargo_test` and no `migration_dry_run`
37 # (see pom-topology.toml). Both gates are artifact-scoped, which the boundary
38 # assigns to the builder, and an accepted artifact has no worktree for them to
39 # read — they would refuse rather than run. pom has no postgres schema at all;
40 # its SQLite migrations are compiled into the binary.
41
42 # No [[companion]]: pom is a single binary with no contract-coupled service
43 # shipping alongside it.
44