新增 release artifact JSON workflow API
This commit is contained in:
@@ -4,6 +4,7 @@ export {
|
||||
createProjectReleaseGateActionPlan,
|
||||
createProjectReleaseGateManifest,
|
||||
createProjectReleaseGateResultMatrix,
|
||||
createProjectReleaseReadinessArtifactJsonWorkflow,
|
||||
createProjectReleaseReadinessArtifactValidation,
|
||||
createProjectReleaseReadinessArtifactValidationActionPlan,
|
||||
createProjectReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
|
||||
@@ -444,6 +444,80 @@ export function parseProjectReleaseReadinessArtifactJson(text) {
|
||||
return JSON.parse(String(text));
|
||||
}
|
||||
|
||||
export function createProjectReleaseReadinessArtifactJsonWorkflow({ artifactJson = "" } = {}) {
|
||||
try {
|
||||
const artifact = parseProjectReleaseReadinessArtifactJson(artifactJson);
|
||||
const validation = createProjectReleaseReadinessArtifactValidation(artifact);
|
||||
const summaryViewModel = createProjectReleaseReadinessArtifactValidationSummaryViewModel(validation);
|
||||
const actionPlan = createProjectReleaseReadinessArtifactValidationActionPlan(validation);
|
||||
return {
|
||||
apiName: "project-release-readiness-artifact-json-workflow",
|
||||
workflowVersion: 1,
|
||||
phase: validation.ready === true ? "ready" : "blocked",
|
||||
ready: validation.ready === true,
|
||||
parsed: true,
|
||||
parseError: null,
|
||||
artifactApiName: validation.artifactApiName,
|
||||
validation,
|
||||
summaryViewModel,
|
||||
actionPlan,
|
||||
missing: validation.missing,
|
||||
rows: [
|
||||
{
|
||||
id: "parse",
|
||||
label: "Artifact JSON parse",
|
||||
value: "ready",
|
||||
},
|
||||
{
|
||||
id: "validation",
|
||||
label: "Artifact validation",
|
||||
value: validation.ready === true ? "ready" : "blocked",
|
||||
},
|
||||
{
|
||||
id: "next-command",
|
||||
label: "Next command",
|
||||
value: actionPlan.nextCommand ?? "none",
|
||||
},
|
||||
],
|
||||
};
|
||||
} catch (error) {
|
||||
const validation = createProjectReleaseReadinessArtifactValidation({});
|
||||
const summaryViewModel = createProjectReleaseReadinessArtifactValidationSummaryViewModel(validation);
|
||||
const actionPlan = createProjectReleaseReadinessArtifactValidationActionPlan(validation);
|
||||
const parseError = error?.message ?? "artifact JSON parse error";
|
||||
return {
|
||||
apiName: "project-release-readiness-artifact-json-workflow",
|
||||
workflowVersion: 1,
|
||||
phase: "blocked",
|
||||
ready: false,
|
||||
parsed: false,
|
||||
parseError,
|
||||
artifactApiName: null,
|
||||
validation,
|
||||
summaryViewModel,
|
||||
actionPlan,
|
||||
missing: ["artifact-json", ...validation.missing],
|
||||
rows: [
|
||||
{
|
||||
id: "parse",
|
||||
label: "Artifact JSON parse",
|
||||
value: "blocked",
|
||||
},
|
||||
{
|
||||
id: "validation",
|
||||
label: "Artifact validation",
|
||||
value: "blocked",
|
||||
},
|
||||
{
|
||||
id: "next-command",
|
||||
label: "Next command",
|
||||
value: actionPlan.nextCommand ?? "none",
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export function createProjectReleaseReadinessArtifactValidation(artifact = {}) {
|
||||
const artifactObject = objectOrEmpty(artifact);
|
||||
const releaseGate = objectOrEmpty(artifactObject.releaseGate);
|
||||
|
||||
Reference in New Issue
Block a user