From e8ab452b102133b8de9f0319c4371ca5054a5e9a Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Mon, 8 Jun 2026 17:53:14 +0800 Subject: [PATCH] fix: separate gitops root from render output --- scripts/g14-gitops-render.mjs | 5 ++++- scripts/src/runtime-lane.ts | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/g14-gitops-render.mjs b/scripts/g14-gitops-render.mjs index 27349a86..1061a6da 100644 --- a/scripts/g14-gitops-render.mjs +++ b/scripts/g14-gitops-render.mjs @@ -205,6 +205,7 @@ function parseArgs(argv) { lane: process.env.HWLAB_GITOPS_LANE || "g14", nodeId: process.env.HWLAB_NODE_ID || "G14", outDir: defaultOutDir, + gitopsRoot: defaultOutDir, catalogPath: defaultCatalogPath, imageTagMode: process.env.HWLAB_ARTIFACT_IMAGE_TAG_MODE || "short", registryPrefix: defaultRegistryPrefix, @@ -228,6 +229,7 @@ function parseArgs(argv) { if (arg === "--lane") args.lane = readOption(argv, ++index, arg); else if (arg === "--node") args.nodeId = readOption(argv, ++index, arg); else if (arg === "--out") args.outDir = readOption(argv, ++index, arg); + else if (arg === "--gitops-root") args.gitopsRoot = readOption(argv, ++index, arg); else if (arg === "--catalog-path") args.catalogPath = readOption(argv, ++index, arg); else if (arg === "--image-tag-mode") args.imageTagMode = readOption(argv, ++index, arg); else if (arg === "--registry-prefix") args.registryPrefix = readOption(argv, ++index, arg).replace(/\/+$/u, ""); @@ -289,6 +291,7 @@ function usage() { " --lane LANE g14 or runtime lane such as v02/v03/v04; default: g14", ` --node NODE deployment node id from deploy.nodes; default: ${process.env.HWLAB_NODE_ID || "G14"}`, ` --out DIR default: ${defaultOutDir}`, + ` --gitops-root DIR path inside GitOps repo; default comes from deploy.nodes..gitopsRoot`, ` --catalog-path PATH default: ${defaultCatalogPath}`, " --image-tag-mode MODE short or full; v02 uses full source commit IDs", ` --source-repo URL default: ${defaultSourceRepo}`, @@ -739,7 +742,7 @@ function gitopsTargetForProfile(profile) { } function gitopsRootForArgs(args) { - return String(args.outDir || defaultOutDir).replace(/\/+$/u, ""); + return String(args.gitopsRoot || defaultOutDir).replace(/\/+$/u, ""); } function gitopsPathForProfile(args, profile) { diff --git a/scripts/src/runtime-lane.ts b/scripts/src/runtime-lane.ts index 2d87b9a0..e1e58c85 100644 --- a/scripts/src/runtime-lane.ts +++ b/scripts/src/runtime-lane.ts @@ -14,6 +14,7 @@ export type GitOpsRenderArgs = { lane: string; nodeId?: string; outDir: string; + gitopsRoot?: string; sourceBranch: string; gitopsBranch: string; catalogPath: string; @@ -148,11 +149,10 @@ export function applyRuntimeLaneDeployConfig(args: GitOpsRenderArgs, deploy: Dep const defaultRuntimeEndpoint = defaults.defaultRuntimeEndpoint ?? "http://74.48.78.17:17667"; const defaultWebEndpoint = defaults.defaultWebEndpoint ?? "http://74.48.78.17:17666"; const defaultSourceRepo = defaults.defaultSourceRepo ?? "git@github.com:pikasTech/HWLAB.git"; - const defaultOutDir = defaults.defaultGitopsRoot ?? defaultGitopsRoot; const defaultCatalog = `deploy/artifact-catalog.${args.lane}.json`; if (!result.nodeId || result.nodeId === defaultNodeId) result.nodeId = nodeId; - if (result.outDir === defaultOutDir) result.outDir = gitopsRootForNode(deploy, nodeId, defaults); + if (!result.gitopsRoot || result.gitopsRoot === (defaults.defaultGitopsRoot ?? defaultGitopsRoot)) result.gitopsRoot = gitopsRootForNode(deploy, nodeId, defaults); if (result.sourceBranch === defaultBranch || result.sourceBranch === versionName) result.sourceBranch = laneConfig.sourceBranch ?? versionName; if (result.gitopsBranch === defaultGitopsBranch || result.gitopsBranch === `${versionName}-gitops`) result.gitopsBranch = laneConfig.gitopsBranch ?? `${versionName}-gitops`; if (result.catalogPath === defaultCatalogPath || result.catalogPath === defaultCatalog) result.catalogPath = laneConfig.artifactCatalog ?? defaultCatalog;