From 3851acd0cf40875351d84d7659d70ce0b0809389 Mon Sep 17 00:00:00 2001 From: Thomas Boop <52323235+thboop@users.noreply.github.com> Date: Tue, 3 Aug 2021 17:44:58 -0400 Subject: [PATCH] fix continue on error (#1238) --- .../Handlers/CompositeActionHandler.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs index 00e4ed295..3fe8f33bc 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -153,7 +153,7 @@ namespace GitHub.Runner.Worker.Handlers } // Run embedded steps - await RunStepsAsync(embeddedSteps); + await RunStepsAsync(embeddedSteps, stage); // Set outputs ExecutionContext.ExpressionValues["inputs"] = inputsData; @@ -212,7 +212,7 @@ namespace GitHub.Runner.Worker.Handlers } } - private async Task RunStepsAsync(List embeddedSteps) + private async Task RunStepsAsync(List embeddedSteps, ActionRunStage stage) { ArgUtil.NotNull(embeddedSteps, nameof(embeddedSteps)); @@ -388,9 +388,13 @@ namespace GitHub.Runner.Worker.Handlers if (step.ExecutionContext.Result == TaskResult.Failed || step.ExecutionContext.Result == TaskResult.Canceled) { Trace.Info($"Update job result with current composite step result '{step.ExecutionContext.Result}'."); - ExecutionContext.Result = step.ExecutionContext.Result; - ExecutionContext.Root.Result = TaskResultUtil.MergeTaskResults(ExecutionContext.Root.Result, step.ExecutionContext.Result.Value); - ExecutionContext.Root.JobContext.Status = ExecutionContext.Root.Result?.ToActionResult(); + ExecutionContext.Result = TaskResultUtil.MergeTaskResults(ExecutionContext.Result, step.ExecutionContext.Result.Value); + + // We should run cleanup even if one of the cleanup step fails + if (stage != ActionRunStage.Post) + { + break; + } } } }