release: move publication orchestration into tools/release.zig, pin rotated subkey
Gates / package (push) Successful in 8m51s
Release / guard (push) Successful in 1m33s
Gates / test-aarch64 (push) Successful in 4m24s
Gates / frontend (push) Successful in 44s
Gates / package (push) Successful in 33s
Gates / container (push) Successful in 35s
Release / gates (push) Successful in 8m24s
Gates / test-aarch64 (push) Successful in 7m56s
Gates / frontend (push) Successful in 1m31s
Gates / test (push) Failing after 16m8s
Gates / container (push) Successful in 5m11s
CI / gates (push) Failing after 30m3s
Gates / test (push) Successful in 2m7s
Release / publish (push) Failing after 10m20s

This commit is contained in:
2026-08-08 20:22:04 +02:00
parent 32cd9b8e3e
commit 266dde7396
9 changed files with 3042 additions and 1202 deletions
+21
View File
@@ -218,6 +218,27 @@ pub fn build(b: *std.Build) void {
b.step("test-aarch64", "Run the test suite for aarch64-linux-musl (use -fqemu)")
.dependOn(&aarch64_run.step);
// The release publication tool (milestone-14 deviation 24). It is a host
// tool like `dist_stage` and `verify_dist`, and it is installed rather than
// run from the build graph: the workflow invokes it once per phase with the
// secrets in its environment, and a Run step would have to carry them.
const release_tool = hostTool(b, "release");
b.step("release-tool", "Install the release publication tool into zig-out/bin")
.dependOn(&b.addInstallArtifact(release_tool, .{}).step);
// Its pure decisions — semver ordering, VALIDSIG field selection, changelog
// extraction, the releases-payload shape guard — are the reason it exists,
// so they run in the same `zig build test` as everything else.
const release_tests = b.addTest(.{
.name = "release-tool",
.root_module = b.createModule(.{
.root_source_file = b.path("tools/release.zig"),
.target = b.graph.host,
.optimize = optimize,
}),
});
test_step.dependOn(&b.addRunArtifact(release_tests).step);
addDist(b, options, web_assets, .{
.version = version_option,
.version_string = version_string,