From 88f6c06a75526be577419794cb2a4f694817854d Mon Sep 17 00:00:00 2001 From: khanhtc1202 Date: Fri, 13 Jun 2025 17:40:35 +0900 Subject: [PATCH 1/4] Fix error stages are not shown for plugin-arch piped created pipeline Signed-off-by: khanhtc1202 --- .../pipeline/index.tsx | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/web/src/components/deployments-detail-page/pipeline/index.tsx b/web/src/components/deployments-detail-page/pipeline/index.tsx index 058c8c3520..7ae6253321 100644 --- a/web/src/components/deployments-detail-page/pipeline/index.tsx +++ b/web/src/components/deployments-detail-page/pipeline/index.tsx @@ -61,8 +61,25 @@ const createStagesForRendering = ( return []; } + + console.log("[DEBUG]: deployment.stagesList"); + deployment.stagesList.forEach((stage) => { + console.log(stage.name, stage.visible, stage.rollback, stage.requiresList); + // stage.rollback = !stage.visible; + }); + const stages: Stage[][] = []; - const visibleStages = deployment.stagesList.filter((stage) => stage.visible); + const notRollbackCount = deployment.stagesList.filter((stage) => !stage.rollback).length; + let visibleStages: Stage[] = []; + if (notRollbackCount === deployment.stagesList.length) { + visibleStages = deployment.stagesList.filter((stage) => stage.visible); + } else { + visibleStages = deployment.stagesList.filter((stage) => stage.visible || !stage.rollback); + } + + console.log("[DEBUG]: visibleStages", visibleStages); + + // const visibleStages = deployment.stagesList.filter((stage) => (stage.visible || !stage.rollback)); stages[0] = visibleStages.filter((stage) => stage.requiresList.length === 0); @@ -74,6 +91,8 @@ const createStagesForRendering = ( stage.requiresList.some((id) => previousIds.includes(id)) ); } + + console.log("[DEBUG]: stages", stages); return stages; }; From f09068546b7bfbca501940f1c41d893f9ef797c9 Mon Sep 17 00:00:00 2001 From: khanhtc1202 Date: Wed, 25 Jun 2025 19:52:45 +0900 Subject: [PATCH 2/4] Logic based on deployTarget instead Signed-off-by: khanhtc1202 --- .../components/deployments-detail-page/pipeline/index.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/web/src/components/deployments-detail-page/pipeline/index.tsx b/web/src/components/deployments-detail-page/pipeline/index.tsx index 7ae6253321..d0ae8489a2 100644 --- a/web/src/components/deployments-detail-page/pipeline/index.tsx +++ b/web/src/components/deployments-detail-page/pipeline/index.tsx @@ -68,10 +68,8 @@ const createStagesForRendering = ( // stage.rollback = !stage.visible; }); - const stages: Stage[][] = []; - const notRollbackCount = deployment.stagesList.filter((stage) => !stage.rollback).length; let visibleStages: Stage[] = []; - if (notRollbackCount === deployment.stagesList.length) { + if (deployment.deployTargetsByPluginMap?.length === 0) { visibleStages = deployment.stagesList.filter((stage) => stage.visible); } else { visibleStages = deployment.stagesList.filter((stage) => stage.visible || !stage.rollback); @@ -81,6 +79,7 @@ const createStagesForRendering = ( // const visibleStages = deployment.stagesList.filter((stage) => (stage.visible || !stage.rollback)); + const stages: Stage[][] = []; stages[0] = visibleStages.filter((stage) => stage.requiresList.length === 0); let index = 0; From bfa9395cc0f41af91ad705e659463ada0d986ded Mon Sep 17 00:00:00 2001 From: khanhtc1202 Date: Thu, 26 Jun 2025 16:29:42 +0900 Subject: [PATCH 3/4] Update stage showing logic to not dependent on stage.visible field Signed-off-by: khanhtc1202 --- .../pipeline/index.tsx | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/web/src/components/deployments-detail-page/pipeline/index.tsx b/web/src/components/deployments-detail-page/pipeline/index.tsx index d0ae8489a2..9dcbe4bdb9 100644 --- a/web/src/components/deployments-detail-page/pipeline/index.tsx +++ b/web/src/components/deployments-detail-page/pipeline/index.tsx @@ -54,6 +54,10 @@ const findDefaultActiveStage = ( return stages[stages.length - 1]; }; +const isStartedStage = (stage: Stage): boolean => { + return stage.status !== StageStatus.STAGE_NOT_STARTED_YET; +}; + const createStagesForRendering = ( deployment: Deployment.AsObject | undefined ): Stage[][] => { @@ -61,24 +65,15 @@ const createStagesForRendering = ( return []; } - - console.log("[DEBUG]: deployment.stagesList"); - deployment.stagesList.forEach((stage) => { - console.log(stage.name, stage.visible, stage.rollback, stage.requiresList); - // stage.rollback = !stage.visible; - }); - let visibleStages: Stage[] = []; if (deployment.deployTargetsByPluginMap?.length === 0) { visibleStages = deployment.stagesList.filter((stage) => stage.visible); } else { - visibleStages = deployment.stagesList.filter((stage) => stage.visible || !stage.rollback); + visibleStages = deployment.stagesList.filter( + (stage) => !stage.rollback || isStartedStage(stage) + ); } - console.log("[DEBUG]: visibleStages", visibleStages); - - // const visibleStages = deployment.stagesList.filter((stage) => (stage.visible || !stage.rollback)); - const stages: Stage[][] = []; stages[0] = visibleStages.filter((stage) => stage.requiresList.length === 0); @@ -91,7 +86,6 @@ const createStagesForRendering = ( ); } - console.log("[DEBUG]: stages", stages); return stages; }; From 1460183ce018092d177f69fbacf326c4bbaee51b Mon Sep 17 00:00:00 2001 From: khanhtc1202 Date: Thu, 26 Jun 2025 16:50:00 +0900 Subject: [PATCH 4/4] Update condition to avoid undefined case error Signed-off-by: khanhtc1202 --- .../components/deployments-detail-page/pipeline/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/components/deployments-detail-page/pipeline/index.tsx b/web/src/components/deployments-detail-page/pipeline/index.tsx index 9dcbe4bdb9..a840552f8a 100644 --- a/web/src/components/deployments-detail-page/pipeline/index.tsx +++ b/web/src/components/deployments-detail-page/pipeline/index.tsx @@ -66,12 +66,12 @@ const createStagesForRendering = ( } let visibleStages: Stage[] = []; - if (deployment.deployTargetsByPluginMap?.length === 0) { - visibleStages = deployment.stagesList.filter((stage) => stage.visible); - } else { + if (deployment.deployTargetsByPluginMap?.length) { visibleStages = deployment.stagesList.filter( (stage) => !stage.rollback || isStartedStage(stage) ); + } else { + visibleStages = deployment.stagesList.filter((stage) => stage.visible); } const stages: Stage[][] = [];