From afe7066e39085945c94b8e10d214045ddd732efc Mon Sep 17 00:00:00 2001 From: Thomas Boop <52323235+thboop@users.noreply.github.com> Date: Tue, 28 Sep 2021 18:55:28 -0400 Subject: [PATCH] only cleanup runner local files on success (#1384) --- src/Runner.Listener/Runner.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index bdeff538d..128fcbdfa 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -316,6 +316,9 @@ namespace GitHub.Runner.Listener IJobDispatcher jobDispatcher = null; CancellationTokenSource messageQueueLoopTokenSource = CancellationTokenSource.CreateLinkedTokenSource(HostContext.RunnerShutdownToken); + + // Should we try to cleanup ephemeral runners + bool runOnceJobCompleted = false; try { var notification = HostContext.GetService(); @@ -377,6 +380,7 @@ namespace GitHub.Runner.Listener Task completeTask = await Task.WhenAny(getNextMessage, jobDispatcher.RunOnceJobCompleted.Task); if (completeTask == jobDispatcher.RunOnceJobCompleted.Task) { + runOnceJobCompleted = true; Trace.Info("Job has finished at backend, the runner will exit since it is running under onetime use mode."); Trace.Info("Stop message queue looping."); messageQueueLoopTokenSource.Cancel(); @@ -485,7 +489,7 @@ namespace GitHub.Runner.Listener messageQueueLoopTokenSource.Dispose(); - if (settings.Ephemeral) + if (settings.Ephemeral && runOnceJobCompleted) { var configManager = HostContext.GetService(); configManager.DeleteLocalRunnerConfig();