From 3697b4ea6a1610772369cb1559cd810502b51029 Mon Sep 17 00:00:00 2001 From: Tim Jaacks <tim.jaacks@seco.com> Date: Thu, 19 Oct 2023 14:14:36 +0200 Subject: [PATCH] cancel_pipelines: reverse order of cancellation Cancel parent pipeline first before cancelling its children in order not to have failed parent pipelines (trigger jobs are failed if their downstream pipeline is cancelled). --- scripts/cancel_pipelines.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scripts/cancel_pipelines.py b/scripts/cancel_pipelines.py index 497484a7..b2a43276 100755 --- a/scripts/cancel_pipelines.py +++ b/scripts/cancel_pipelines.py @@ -24,6 +24,10 @@ def cancel_pipeline_including_children( cancelled_pipelines = [] + if pipeline.status not in ["success", "failed", "canceled"]: + cancelled_pipelines.append(pipeline) + pipeline.cancel() + # Browse through all downstream pipelines for bridge in pipeline.bridges.list(as_list=False): @@ -41,10 +45,6 @@ def cancel_pipeline_including_children( cancelled_pipelines += cancel_pipeline_including_children( project, downstream_pipeline ) - if downstream_pipeline.status not in ["success", "failed", "canceled"]: - cancelled_pipelines.append(downstream_pipeline) - - pipeline.cancel() return cancelled_pipelines @@ -73,8 +73,6 @@ def cancel_pipelines( for pipeline in pipelines: if pipeline.id < below_pipeline_id: cancelled_pipelines += cancel_pipeline_including_children(project, pipeline) - if pipeline.status not in ["success", "failed", "canceled"]: - cancelled_pipelines.append(pipeline) return cancelled_pipelines -- GitLab