From b63f98714c9a814363a6c861d5652981e88ab108 Mon Sep 17 00:00:00 2001 From: Ethan Chiu Date: Tue, 7 Jul 2020 12:38:39 -0400 Subject: [PATCH] Remove env in composite action scope --- src/Runner.Worker/ActionManager.cs | 3 - src/Runner.Worker/ActionManifestManager.cs | 57 +------------------ .../Handlers/CompositeActionHandler.cs | 19 +------ src/Runner.Worker/action_yaml.json | 5 +- 4 files changed, 6 insertions(+), 78 deletions(-) diff --git a/src/Runner.Worker/ActionManager.cs b/src/Runner.Worker/ActionManager.cs index 3bdba9df3..2dbef6fb5 100644 --- a/src/Runner.Worker/ActionManager.cs +++ b/src/Runner.Worker/ActionManager.cs @@ -400,8 +400,6 @@ namespace GitHub.Runner.Worker var compositeAction = definition.Data.Execution as CompositeActionExecutionData; Trace.Info($"Load {compositeAction.Steps.Count} action steps."); Trace.Verbose($"Details: {StringUtil.ConvertToJson(compositeAction.Steps)}"); - Trace.Info($"Load: {compositeAction.Environment} environment steps"); - Trace.Info($"Details: {StringUtil.ConvertToJson(compositeAction.Environment)}"); } else { @@ -1287,7 +1285,6 @@ namespace GitHub.Runner.Worker public override bool HasPre => false; public override bool HasPost => false; public List Steps { get; set; } - public MappingToken Environment { get; set; } } public abstract class ActionExecutionData diff --git a/src/Runner.Worker/ActionManifestManager.cs b/src/Runner.Worker/ActionManifestManager.cs index af7ee666f..d4bcb5059 100644 --- a/src/Runner.Worker/ActionManifestManager.cs +++ b/src/Runner.Worker/ActionManifestManager.cs @@ -27,7 +27,6 @@ namespace GitHub.Runner.Worker Dictionary EvaluateContainerEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary extraExpressionValues); - public Dictionary EvaluateCompositeActionEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary extraExpressionValues); string EvaluateDefaultInput(IExecutionContext executionContext, string inputName, TemplateToken token); } @@ -100,7 +99,7 @@ namespace GitHub.Runner.Worker break; case "runs": - actionDefinition.Execution = ConvertRuns(executionContext, context, actionPair.Value, envComposite); + actionDefinition.Execution = ConvertRuns(executionContext, context, actionPair.Value); break; default: @@ -222,48 +221,6 @@ namespace GitHub.Runner.Worker return result; } - public Dictionary EvaluateCompositeActionEnvironment( - IExecutionContext executionContext, - MappingToken token, - IDictionary extraExpressionValues) - { - var result = new Dictionary(StringComparer.OrdinalIgnoreCase); - - if (token != null) - { - var context = CreateContext(executionContext, extraExpressionValues); - try - { - var evaluateResult = TemplateEvaluator.Evaluate(context, "runs-env", token, 0, null, omitHeader: true); - context.Errors.Check(); - - // Mapping - var mapping = evaluateResult.AssertMapping("composite env"); - - foreach (var pair in mapping) - { - // Literal key - var key = pair.Key.AssertString("composite env key"); - - // Literal value - var value = pair.Value.AssertString("composite env value"); - result[key.Value] = value.Value; - - Trace.Info($"Add env {key} = {value}"); - } - } - catch (Exception ex) when (!(ex is TemplateValidationException)) - { - Trace.Error(ex); - context.Errors.Add(ex); - } - - context.Errors.Check(); - } - - return result; - - } public string EvaluateDefaultInput( IExecutionContext executionContext, string inputName, @@ -347,8 +304,7 @@ namespace GitHub.Runner.Worker private ActionExecutionData ConvertRuns( IExecutionContext executionContext, TemplateContext context, - TemplateToken inputsToken, - MappingToken envComposite) + TemplateToken inputsToken) { var runsMapping = inputsToken.AssertMapping("runs"); var usingToken = default(StringToken); @@ -440,7 +396,6 @@ namespace GitHub.Runner.Worker Image = imageToken.Value, Arguments = argsToken, EntryPoint = entrypointToken?.Value, - Environment = envToken, Pre = preEntrypointToken?.Value, InitCondition = preIfToken?.Value ?? "always()", Post = postEntrypointToken?.Value, @@ -477,16 +432,10 @@ namespace GitHub.Runner.Worker { return new CompositeActionExecutionData() { - Steps = stepsLoaded, - Environment = envComposite + Steps = stepsLoaded }; } } - // If there is an env set and it's not for composite action, yield an error - if (envComposite != null && string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TESTING_COMPOSITE_ACTIONS_ALPHA"))) - { - throw new ArgumentException("You cannot use env unless you are using Composite Actions"); - } else { throw new ArgumentOutOfRangeException($"'using: {usingToken.Value}' is not supported, use 'docker' or 'node12' instead."); diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs index d626fde4f..62c67e1aa 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -51,23 +51,6 @@ namespace GitHub.Runner.Worker.Handlers extraExpressionValues["inputs"] = inputsData; var manifestManager = HostContext.GetService(); - // Add the composite action environment variables to each step. - // If the key already exists, we override it since the composite action env variables will have higher precedence - // Note that for each composite action step, it's environment variables will be set in the StepRunner automatically - var compositeEnvData = manifestManager.EvaluateCompositeActionEnvironment(ExecutionContext, Data.Environment, extraExpressionValues); - var envData = new Dictionary(); - - // Copy over parent environment - foreach (var env in Environment) - { - envData[env.Key] = env.Value; - } - // Overwrite with current env - foreach (var env in compositeEnvData) - { - envData[env.Key] = env.Value; - } - // Add each composite action step to the front of the queue int location = 0; foreach (Pipelines.ActionStep aStep in actionSteps) @@ -108,7 +91,7 @@ namespace GitHub.Runner.Worker.Handlers actionRunner.Condition = aStep.Condition; actionRunner.DisplayName = aStep.DisplayName; - ExecutionContext.RegisterNestedStep(actionRunner, inputsData, location, envData); + ExecutionContext.RegisterNestedStep(actionRunner, inputsData, location, Environment); location++; } diff --git a/src/Runner.Worker/action_yaml.json b/src/Runner.Worker/action_yaml.json index a8ec3a2e4..cb1d90b2e 100644 --- a/src/Runner.Worker/action_yaml.json +++ b/src/Runner.Worker/action_yaml.json @@ -7,7 +7,6 @@ "name": "string", "description": "string", "inputs": "inputs", - "env": "runs-env", "runs": "runs" }, "loose-key-type": "non-empty-string", @@ -44,7 +43,7 @@ "image": "non-empty-string", "entrypoint": "non-empty-string", "args": "container-runs-args", - "env": "runs-env", + "env": "container-runs-env", "pre-entrypoint": "non-empty-string", "pre-if": "non-empty-string", "post-entrypoint": "non-empty-string", @@ -57,7 +56,7 @@ "item-type": "container-runs-context" } }, - "runs-env": { + "container-runs-env": { "context": [ "inputs" ],