commit 1b5646deb8487d0517c3265976e3dd7ed86fd1c3
parent 63199cc69bf204e1a4b4e8ae8bde9fabc07d4e1e
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Mon, 28 Sep 2026 12:47:16 -0400
jobs: /jobs labels for the hub's and the homepage's build and deploy kinds
build-hub, deploy-hub, build-deploy-hub, build-homepage, deploy-homepage
and build-deploy-homepage had no JOB_KINDS entry, so /jobs showed their
raw machine kinds. Labels are the /sites lanes' own titles ("Build hub",
"Build & deploy homepage", …); queueKeyStrategy "custom" (BUILD_QUEUE /
DEPLOY_QUEUE), not drainable, not replayable, no needsMedia (they never
open a channel's data/ and carry no channelSlug). The hub's deploy-hub and
build-deploy-hub are in too, so the hub's trio is not half-labelled.
jobKinds.test.ts pins the six labels and drainability (ADDED_KINDS).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
2 files changed, 65 insertions(+), 0 deletions(-)
diff --git a/common/jobs/jobKinds.test.ts b/common/jobs/jobKinds.test.ts
@@ -64,6 +64,18 @@ const ADDED_KINDS: Record<string, { label: string; drainable: boolean }> = {
// "retry" on one would mean "start a second dispatcher".
"auto-digest": { label: "Auto-digest runner", drainable: true },
"auto-backfill": { label: "Auto-backfill runner", drainable: true },
+ // The hub's and the homepage's build and deploy (release 13 slice W1): /jobs
+ // showed them by their raw kinds. One child process each — a cancel stops
+ // it, there is nothing to drain.
+ "build-hub": { label: "Build hub", drainable: false },
+ "deploy-hub": { label: "Deploy hub", drainable: false },
+ "build-deploy-hub": { label: "Build & deploy hub", drainable: false },
+ "build-homepage": { label: "Build homepage", drainable: false },
+ "deploy-homepage": { label: "Deploy homepage", drainable: false },
+ "build-deploy-homepage": {
+ label: "Build & deploy homepage",
+ drainable: false,
+ },
};
test("added kinds carry their pinned label and drainability", () => {
diff --git a/common/jobs/jobKinds.ts b/common/jobs/jobKinds.ts
@@ -513,6 +513,59 @@ const JOB_KINDS: Record<string, JobKindMeta> = {
queueKeyStrategy: "platform",
needsMedia: true,
},
+ // THE HUB'S AND THE HOMEPAGE'S BUILD AND DEPLOY (release 13 slice W1). They
+ // ran from /sites — the hub since release 7, the homepage since release 11 —
+ // with no entry here, so /jobs showed their raw machine kinds. The labels
+ // are the lanes' own titles on /sites (HubBuildButtons, HomepageBuildButtons).
+ //
+ // Queue: BUILD_QUEUE for a build, DEPLOY_QUEUE for a deploy or a
+ // build-and-deploy (the actions' `queueKey`), hence "custom". Neither
+ // drainable (one child process; stopping it is a cancel) nor replayable (no
+ // JobSpec: a replayed deploy would not know its preview branch). No
+ // `needsMedia`: they read the index and the export output, never a
+ // channel's `data/`, and carry no channelSlug for the guard to check.
+ "build-hub": {
+ kind: "build-hub",
+ label: "Build hub",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
+ "deploy-hub": {
+ kind: "deploy-hub",
+ label: "Deploy hub",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
+ "build-deploy-hub": {
+ kind: "build-deploy-hub",
+ label: "Build & deploy hub",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
+ "build-homepage": {
+ kind: "build-homepage",
+ label: "Build homepage",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
+ "deploy-homepage": {
+ kind: "deploy-homepage",
+ label: "Deploy homepage",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
+ "build-deploy-homepage": {
+ kind: "build-deploy-homepage",
+ label: "Build & deploy homepage",
+ drainable: false,
+ replayable: false,
+ queueKeyStrategy: "custom",
+ },
// Replayable kinds that never had a JOB_KIND_LABELS entry: label omitted so
// jobKindLabel() keeps falling back to the raw kind (unchanged behavior).
"store-playlist": {