| 50 |
50 |
|
let binary = resolve_artifact(h, r + "/target/release/pom");
|
| 51 |
51 |
|
|
| 52 |
52 |
|
step("verify");
|
| 53 |
|
- |
// Native-per-arch removed the cross-compile hazard the old script was written
|
| 54 |
|
- |
// against, but not this one: fw13 tracks a newer glibc than the Ubuntu 24.04
|
| 55 |
|
- |
// box in Hetzner, so a binary built here can reference a symbol version that
|
| 56 |
|
- |
// box does not have and fail at exec -- after the unit has already restarted
|
| 57 |
|
- |
// onto it. This compares the two and fails the step if the build host got
|
| 58 |
|
- |
// ahead. The installer checks the same thing again on the far side, by actually
|
| 59 |
|
- |
// running the binary.
|
| 60 |
|
- |
log(glibc_check(binary));
|
|
53 |
+ |
// No `glibc_check` here any more, and its absence is the boundary rather than
|
|
54 |
+ |
// an omission. The check compares the built binary's highest GLIBC symbol
|
|
55 |
+ |
// against `ldd --version` on the machine that runs it, so it needs to know that
|
|
56 |
+ |
// machine -- it reads the `[[deploy]]` entry, which a handed-off service does
|
|
57 |
+ |
// not have. It is evidence about the artifact IN A PLACE, which is Sando's half
|
|
58 |
+ |
// of the split, and it was the one call in this recipe still on the wrong side.
|
|
59 |
+ |
//
|
|
60 |
+ |
// This is a real check to be without in the meantime, not a formality. pom's
|
|
61 |
+ |
// x86_64 half builds on fw13 and runs on Ubuntu 24.04 in Hetzner; measured at
|
|
62 |
+ |
// 0.4.2 the binary needs GLIBC 2.39 and that box has exactly 2.39. One point
|
|
63 |
+ |
// release of drift on the build host and it fails at exec, after the unit has
|
|
64 |
+ |
// already restarted onto it. Sando gaining the gate is GoingsOn work; until it
|
|
65 |
+ |
// does, node_health catches it after the restart rather than before.
|
|
66 |
+ |
//
|
| 61 |
67 |
|
// The version that is about to ship is the version in the tag. A binary
|
| 62 |
68 |
|
// reporting something else means the checkout and the release disagree.
|
| 63 |
69 |
|
sh_ok(h, binary + " --version | grep -qw " + v);
|