From fd75cdb8ab2619c115150af1e049661e3c63d02b Mon Sep 17 00:00:00 2001 From: Ethan Chiu Date: Mon, 27 Jul 2020 11:30:35 -0400 Subject: [PATCH] Set github action path at step level instead of global scope to avoid necessary removal --- src/Runner.Worker/ExecutionContext.cs | 8 ++++++-- src/Runner.Worker/Handlers/CompositeActionHandler.cs | 5 +---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Runner.Worker/ExecutionContext.cs b/src/Runner.Worker/ExecutionContext.cs index 1aad95c9c..3a7912959 100644 --- a/src/Runner.Worker/ExecutionContext.cs +++ b/src/Runner.Worker/ExecutionContext.cs @@ -98,7 +98,7 @@ namespace GitHub.Runner.Worker // others void ForceTaskComplete(); void RegisterPostJobStep(IStep step); - IStep CreateCompositeStep(string scopeName, IActionRunner step, DictionaryContextData inputsData, Dictionary envData); + IStep CreateCompositeStep(string scopeName, IActionRunner step, DictionaryContextData inputsData, Dictionary envData, string actionDirectory); } public sealed class ExecutionContext : RunnerService, IExecutionContext @@ -258,7 +258,8 @@ namespace GitHub.Runner.Worker string scopeName, IActionRunner step, DictionaryContextData inputsData, - Dictionary envData) + Dictionary envData, + string actionDirectory) { step.ExecutionContext = Root.CreateChild(_record.Id, step.DisplayName, _record.Id.ToString("N"), scopeName, step.Action.ContextName, logger: _logger, insideComposite: true, cancellationTokenSource: CancellationTokenSource.CreateLinkedTokenSource(_cancellationTokenSource.Token)); step.ExecutionContext.ExpressionValues["inputs"] = inputsData; @@ -276,6 +277,9 @@ namespace GitHub.Runner.Worker } step.ExecutionContext.ExpressionValues["env"] = envContext; + // Set GITHUB_ACTION_PATH for each step + step.ExecutionContext.SetGitHubContext("action_path", actionDirectory); + return step; } diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs index f9716b24a..807ef2242 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -56,9 +56,6 @@ namespace GitHub.Runner.Worker.Handlers childScopeName = $"__{Guid.NewGuid()}"; } - // Set GITHUB_ACTION_PATH - ExecutionContext.SetGitHubContext("action_path", ActionDirectory); - foreach (Pipelines.ActionStep actionStep in actionSteps) { var actionRunner = HostContext.CreateService(); @@ -66,7 +63,7 @@ namespace GitHub.Runner.Worker.Handlers actionRunner.Stage = stage; actionRunner.Condition = actionStep.Condition; - var step = ExecutionContext.CreateCompositeStep(childScopeName, actionRunner, inputsData, Environment); + var step = ExecutionContext.CreateCompositeStep(childScopeName, actionRunner, inputsData, Environment, ActionDirectory); compositeSteps.Add(step); }