fix: use manual v02 ci trigger

This commit is contained in:
Codex
2026-05-30 01:38:56 +08:00
parent 69293dcde6
commit 052e9d5291
4 changed files with 30 additions and 25 deletions
+12 -4
View File
@@ -1612,8 +1612,10 @@ const eventName = requiredEnv("RECONCILE_EVENT");
const manifestFiles = [
"deploy/gitops/g14/" + tektonDir + "/rbac.yaml",
"deploy/gitops/g14/" + tektonDir + "/pipeline.yaml",
"deploy/gitops/g14/" + tektonDir + "/poller.yaml",
"deploy/gitops/g14/" + tektonDir + "/control-plane-reconciler.yaml",
...(process.env.LANE === "v02" ? [] : [
"deploy/gitops/g14/" + tektonDir + "/poller.yaml",
"deploy/gitops/g14/" + tektonDir + "/control-plane-reconciler.yaml"
]),
...argoFiles
];
const plurals = new Map([
@@ -2593,6 +2595,7 @@ function tektonPipelineRunTemplate({ source, args }) {
function tektonPollerCronJob(args) {
const settings = ciLaneSettings(args);
if (settings.lane === "v02") throw new Error("v02 CI/CD is manually triggered by UniDesk CLI and must not render a branch poller CronJob");
return {
apiVersion: "batch/v1",
kind: "CronJob",
@@ -2666,6 +2669,7 @@ function tektonPollerCronJob(args) {
function tektonControlPlaneReconcilerCronJob(args) {
const settings = ciLaneSettings(args);
if (settings.lane === "v02") throw new Error("v02 CI/CD is manually triggered by UniDesk CLI and must not render a control-plane reconciler CronJob");
return {
apiVersion: "batch/v1",
kind: "CronJob",
@@ -3660,10 +3664,12 @@ This directory is generated by \`scripts/g14-gitops-render.mjs --lane v02\` from
- CI: Tekton Pipeline \`hwlab-ci/hwlab-v02-ci-image-publish\`.
- Source reads: v0.2 CI source clone uses devops-infra read-only mirror \`${args.gitReadUrl}\`; canonical repo \`${args.sourceRepo}\` remains the identity and GitOps write path.
- Artifact contract: runtime images come from \`${args.catalogPath}\`; source branch \`v0.2\` does not track this generated catalog.
- Manual trigger: run \`bun scripts/cli.ts hwlab g14 control-plane trigger-current --lane v02 --confirm\` from UniDesk to create commit-pinned PipelineRun \`hwlab-v02-ci-poll-<short12>\` for the current \`origin/v0.2\` commit.
- Branch split: source branch \`${args.sourceBranch}\` remains human-authored source; generated desired state is promoted to \`${args.gitopsBranch}\`.
- CD: Argo CD Application \`argocd/hwlab-g14-v02\` consumes \`${args.gitopsBranch}:deploy/gitops/g14/runtime-v02\` and deploys only to namespace \`hwlab-v02\`.
- Public preview: FRP exposes v0.2 web \`${args.webEndpoint}\` / edge \`${args.runtimeEndpoint}\` through \`hwlab-v02/hwlab-v02-frpc\`.
- G14 DEV/PROD boundary: this lane does not modify \`G14\`, \`G14-gitops\`, \`hwlab-dev\`, \`hwlab-prod\`, 17666/17667 or 18666/18667.
- CronJob policy: v0.2 does not generate \`hwlab-v02-branch-poller\` or \`hwlab-v02-control-plane-reconciler\`; obsolete live CronJobs should be deleted by the UniDesk control-plane apply command.
- Gate policy: old DEV/D601/main gates do not enter this lane; new checks stay limited to the fixed branch, namespace, catalog, runtime path and Argo boundaries.
`;
}
@@ -3743,8 +3749,10 @@ async function plannedFiles(args) {
if (args.lane === "v02") putJson("devops-infra/git-mirror.yaml", devopsInfraGitMirrorManifest());
putJson(`${settings.tektonDir}/rbac.yaml`, tektonRbac(args));
putJson(`${settings.tektonDir}/pipeline.yaml`, tektonPipeline(args));
putJson(`${settings.tektonDir}/poller.yaml`, tektonPollerCronJob(args));
putJson(`${settings.tektonDir}/control-plane-reconciler.yaml`, tektonControlPlaneReconcilerCronJob(args));
if (args.lane !== "v02") {
putJson(`${settings.tektonDir}/poller.yaml`, tektonPollerCronJob(args));
putJson(`${settings.tektonDir}/control-plane-reconciler.yaml`, tektonControlPlaneReconcilerCronJob(args));
}
putJson(`${settings.tektonDir}/pipelinerun.sample.yaml`, tektonPipelineRunTemplate({ source, args }));
putJson("argocd/project.yaml", argoProject(args));
for (const profile of profiles) putJson(`argocd/application-${profile}.yaml`, argoApplication(args, profile));