fix: align v02 target validation with rollout services
This commit is contained in:
@@ -1238,6 +1238,7 @@ function v02TargetValidation(input: {
|
||||
sourceCommit: string | null;
|
||||
pipelineRun: Record<string, unknown> | null;
|
||||
argo: Record<string, unknown>;
|
||||
planArtifacts: Record<string, unknown>;
|
||||
runtimeWorkloads: Record<string, unknown>;
|
||||
webAssets: Record<string, unknown>;
|
||||
gitMirror: Record<string, unknown>;
|
||||
@@ -1259,6 +1260,9 @@ function v02TargetValidation(input: {
|
||||
const serviceSourceCommits = Object.fromEntries(workloadItems
|
||||
.filter((item) => item.serviceId === "hwlab-cloud-api" || item.serviceId === "hwlab-cloud-web")
|
||||
.map((item) => [String(item.serviceId), stringOrNull(item.sourceCommit) ?? stringOrNull(item.artifactSourceCommit)]));
|
||||
const rolloutServices = stringArray(input.planArtifacts.rolloutServices)
|
||||
.filter((serviceId) => serviceId === "hwlab-cloud-api" || serviceId === "hwlab-cloud-web");
|
||||
const requiredRuntimeServices = rolloutServices.length > 0 ? rolloutServices : ["hwlab-cloud-api"];
|
||||
const recentItems = Array.isArray(input.recentPipelineRuns.items)
|
||||
? input.recentPipelineRuns.items.map((item) => record(item))
|
||||
: [];
|
||||
@@ -1290,7 +1294,7 @@ function v02TargetValidation(input: {
|
||||
githubInSync: gitMirrorSummary.githubInSync ?? null,
|
||||
});
|
||||
}
|
||||
for (const serviceId of ["hwlab-cloud-api", "hwlab-cloud-web"]) {
|
||||
for (const serviceId of requiredRuntimeServices) {
|
||||
const serviceCommit = serviceSourceCommits[serviceId];
|
||||
if (sourceCommit !== null && serviceCommit !== sourceCommit) {
|
||||
const mismatch = { reason: "runtime-service-source-mismatch", serviceId, expectedSourceCommit: sourceCommit, actualSourceCommit: serviceCommit ?? null };
|
||||
@@ -1314,6 +1318,9 @@ function v02TargetValidation(input: {
|
||||
: { name: input.pipelineRun.pipelineRun ?? null, status: input.pipelineRun.status ?? null, reason: input.pipelineRun.reason ?? null },
|
||||
argo: { syncRevision: argoFields.syncRevision ?? null, syncStatus: argoFields.syncStatus ?? null, health: argoFields.health ?? null },
|
||||
runtimeServices: serviceSourceCommits,
|
||||
requiredRuntimeServices,
|
||||
rolloutServices: stringArray(input.planArtifacts.rolloutServices),
|
||||
reusedServices: stringArray(input.planArtifacts.reusedServices),
|
||||
superseded,
|
||||
supersededRuntimeServices,
|
||||
newerSucceededRuns: newerSucceededRuns.slice(0, 3).map((item) => ({
|
||||
@@ -2042,6 +2049,7 @@ function v02ControlPlaneStatus(target: V02ControlPlaneStatusTarget = {}): Record
|
||||
ok: shellSectionOk(argo),
|
||||
fields: { targetRevision, path, syncRevision, syncStatus, health },
|
||||
},
|
||||
planArtifacts,
|
||||
runtimeWorkloads,
|
||||
webAssets,
|
||||
gitMirror,
|
||||
|
||||
Reference in New Issue
Block a user