Rebuild every image the lab runs, not only the control plane's
A run today had a control-plane image built that minute and a provisioner image built the day before. The rotation test failed against a real database and it looked exactly like the change under test being wrong — the provisioner was creating logins by a naming rule that had been replaced hours earlier. It was the rebuild. It covered `make image` and the builder binary and none of the three other image targets, all of which the suite runs. This is the same fault the builder line was added for, one target along, and the comment there already names the precedent: building one and not the other is the eleven-hour-old binary. A rebuild that covers most of what a run uses is worse than one that covers none, because the run that follows it is believed. The test names each target rather than counting them, because what goes wrong is a target that exists and is not run, and a count would not notice.
This commit is contained in:
+15
-1
@@ -46,7 +46,21 @@ export function planned(env: NodeJS.ProcessEnv = process.env): Build[] {
|
||||
}
|
||||
const control = where["mesh-control"];
|
||||
if (control) {
|
||||
builds.push({ what: "control plane image", in: control, argv: ["make", "image"] });
|
||||
// **Every image the lab runs, not only the control plane's.**
|
||||
//
|
||||
// On 2026-09-01 a suite ran with a control-plane image built that minute and a provisioner
|
||||
// image built the day before. The rotation test failed against a real database, and the
|
||||
// failure looked exactly like the change under test being wrong — the provisioner was
|
||||
// creating logins by a naming rule that had been replaced.
|
||||
//
|
||||
// This is the same fault the builder line below was added for, one target along. A rebuild
|
||||
// that covers most of what a run uses is worse than one that covers none, because the run
|
||||
// that follows it is believed.
|
||||
builds.push({
|
||||
what: "images",
|
||||
in: control,
|
||||
argv: ["make", "image", "builder-image", "provisioner-image", "proxy-image"],
|
||||
});
|
||||
const builder = env["MESH_LAB_BUILDER"];
|
||||
if (builder) {
|
||||
// Both of these parse manifests. Building one and not the other is the eleven-hour-old
|
||||
|
||||
Reference in New Issue
Block a user