Skip to main content

max / makenotwork

2.4 KB · 55 lines History Blame Raw
1 # How Bento releases pom. Lives here rather than in the daemon's config so it is
2 # versioned with the code it describes.
3 #
4 # A service, not an app or a library: pom is run rather than distributed. There
5 # is no bundle for a user to download and no crate to publish, so the release
6 # ends at `deploy` -- the binary lands on the hosts that run it and their units
7 # restart.
8 kind = "service"
9
10 # Two arches, two machines, built natively on each. Sando cannot do this job:
11 # sando-daemon.toml sets build_host = "fw13" and build::run refuses to compile
12 # anywhere else, which is the never-build-on-prod invariant and also makes Sando
13 # single-architecture. pom needs an aarch64 binary for astra, so Sando could
14 # never build half of this release without breaking its own rule.
15 targets = ["linux/x86_64", "linux/aarch64"]
16
17 # Workspace root carries the version.
18 version_path = "Cargo.toml"
19
20 # MNW is one .git over the server, sando, multithreaded, pom and more, each
21 # versioned separately, so the default `v{version}` names no product in
22 # particular here. pom and multithreaded are both at 0.4.1 as it stands, which
23 # makes a bare `v0.4.1` ambiguous the day it is created rather than eventually.
24 tag_format = "pom-v{version}"
25
26 # Neither instance ships without the other. pom watches production, and an
27 # aarch64 build that quietly failed while x86_64 shipped leaves half the mesh on
28 # an old binary with nothing saying so.
29 require_all_targets = true
30
31 # Where each target lands. The recipe never names a machine -- it calls
32 # deploy(), and the target it is already building for decides where that goes.
33 #
34 # install_path is /usr/local/bin/pom, which is what pom.service actually
35 # ExecStarts and what both live hosts have today. Not /opt/pom/pom: that was
36 # copied from mnw-cli's companion shape and matches nothing on either box.
37
38 [[deploy]]
39 target = "linux/x86_64"
40 # Reached over Tailscale SSH on 22 as root. NOT port 2200 -- that is what the
41 # old deploy.sh used and it refuses this machine's key for both root and max,
42 # which is why the 0.4.0 deploy was done by hand.
43 host = "root@100.120.174.96"
44 install_path = "/usr/local/bin/pom"
45 service = "pom.service"
46 health_url = "http://100.120.174.96:9100/api/health"
47
48 [[deploy]]
49 target = "linux/aarch64"
50 # astra builds this one and astra runs it, so the binary never leaves the box.
51 host = "astra"
52 install_path = "/usr/local/bin/pom"
53 service = "pom.service"
54 health_url = "http://100.106.221.39:9100/api/health"
55