release: name the image by the public registry host, not the internal server url
Gates / frontend (push) Successful in 45s
Gates / package (push) Successful in 3m52s
Gates / container (push) Successful in 2m18s
CI / gates (push) Successful in 12m35s
Gates / test-aarch64 (push) Successful in 4m26s
Gates / frontend (push) Successful in 47s
Release / guard (push) Successful in 1m16s
Gates / test (push) Successful in 1m9s
Gates / package (push) Successful in 31s
Gates / container (push) Successful in 34s
Release / gates (push) Successful in 7m29s
Release / publish (push) Successful in 5m15s
Gates / test (push) Successful in 1m11s
Gates / test-aarch64 (push) Successful in 4m28s

This commit is contained in:
2026-08-08 21:14:37 +02:00
parent 266dde7396
commit 51d8281abb
2 changed files with 19 additions and 1 deletions
+12 -1
View File
@@ -1361,7 +1361,18 @@ fn resolve(ctx: *Ctx) !void {
};
const server = std.mem.trimEnd(u8, ctx.require("GITHUB_SERVER_URL"), "/");
const registry = registryHost(server);
// The registry host names the image, so it must be the PUBLIC host: inside
// the cluster GITHUB_SERVER_URL is http://gitea:3000, and an image called
// gitea:3000/... is unpullable outside and unloggable-into by docker,
// which refuses plain http. The workflow pins REGISTRY_HOST explicitly;
// the derivation below is the fallback for a deployment whose server URL
// is already public. The manifest probe stays on GITHUB_SERVER_URL — same
// registry, internal route, no TLS dependency in this tool.
const registry = reg: {
const explicit = ctx.get("REGISTRY_HOST");
if (explicit.len != 0) break :reg explicit;
break :reg registryHost(server);
};
const repository = lowercase(ctx.arena, ctx.require("GITHUB_REPOSITORY"));
const image_name = ctx.fmt("{s}/{s}", .{ registry, repository });