@@ -125,28 +125,36 @@ module PipelineContextExtensionsInternal =
125125 let pipelineExns = ResizeArray< exn>()
126126 use cts = new Threading.CancellationTokenSource( timeoutForPipeline)
127127
128- AnsiConsole.MarkupLine $" [turquoise4]Run stages[/]"
129- let hasFailedStage , stageExns = this.RunStages( this.Stages, cts.Token, failfast = true )
130- pipelineExns.AddRange stageExns
131- AnsiConsole.MarkupLine $" [turquoise4]Run stages finished[/]"
132- AnsiConsole.WriteLine()
133- AnsiConsole.WriteLine()
134128
135- let mutable hasFailedPostStage = false
136- if cts.IsCancellationRequested |> not then
137- AnsiConsole.MarkupLine $ " [turquoise4]Run post stages[/] "
138- let result , postStageExns = this.RunStages ( this.PostStages , cts.Token , failfast = false )
139- hasFailedPostStage <- result
140- pipelineExns.AddRange postStageExns
141- AnsiConsole.MarkupLine $" [turquoise4]Run post stages finished[/]"
129+ let mutable hasErrors = false
130+
131+ try
132+ AnsiConsole.MarkupLine $ " [turquoise4]Run stages[/] "
133+ let hasFailedStage , stageExns = this.RunStages ( this.Stages , cts.Token , failfast = true )
134+ pipelineExns.AddRange stageExns
135+ AnsiConsole.MarkupLine $" [turquoise4]Run stages finished[/]"
142136 AnsiConsole.WriteLine()
143137 AnsiConsole.WriteLine()
144138
139+ let mutable hasFailedPostStage = false
140+ if cts.IsCancellationRequested |> not then
141+ AnsiConsole.MarkupLine $" [turquoise4]Run post stages[/]"
142+ let result , postStageExns = this.RunStages( this.PostStages, cts.Token, failfast = false )
143+ hasFailedPostStage <- result
144+ pipelineExns.AddRange postStageExns
145+ AnsiConsole.MarkupLine $" [turquoise4]Run post stages finished[/]"
146+ AnsiConsole.WriteLine()
147+ AnsiConsole.WriteLine()
148+
149+ hasErrors <- hasFailedStage || hasFailedPostStage
150+
151+ with ex ->
152+ this.PrintError ex.Message
153+ raise ex
145154
146- let hasError = hasFailedStage || hasFailedPostStage
147155
148156 let color =
149- if hasError then " red"
157+ if hasErrors then " red"
150158 else if cts.IsCancellationRequested then " yellow"
151159 else " lime"
152160
@@ -166,8 +174,8 @@ module PipelineContextExtensionsInternal =
166174 this.PrintError( exn.Message + " " + innerMessage)
167175 AnsiConsole.WriteLine()
168176 raise ( PipelineFailedException( " Pipeline is failed because of exception" , pipelineExns[ 0 ]))
169- else if hasError then
170- AnsiConsole.MarkupLine " [red] Pipeline is failed because result is not indicating as successful[/] "
177+ else if hasErrors then
178+ this.PrintError " Pipeline is failed because result is not indicating as successful"
171179 raise ( PipelineFailedException " Pipeline is failed because result is not indicating as successful" )
172180
173181
0 commit comments