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 22c960d2a..27fe0f043 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); } @@ -85,8 +84,6 @@ namespace GitHub.Runner.Worker } var actionMapping = token.AssertMapping("action manifest root"); - var envComposite = default(MappingToken); - foreach (var actionPair in actionMapping) { var propertyName = actionPair.Key.AssertString($"action.yml property key"); @@ -105,14 +102,9 @@ namespace GitHub.Runner.Worker ConvertInputs(templateContext, actionPair.Value, actionDefinition); break; - case "env": - envComposite = actionPair.Value.AssertMapping("env"); - break; - case "runs": - actionDefinition.Execution = ConvertRuns(executionContext, templateContext, actionPair.Value, fileId, envComposite); + actionDefinition.Execution = ConvertRuns(executionContext, templateContext, actionPair.Value, fileId); break; - default: Trace.Info($"Ignore action property {propertyName}."); break; @@ -200,7 +192,7 @@ namespace GitHub.Runner.Worker var context = CreateContext(executionContext, extraExpressionValues); try { - var evaluateResult = TemplateEvaluator.Evaluate(context, "runs-env", token, 0, null, omitHeader: true); + var evaluateResult = TemplateEvaluator.Evaluate(context, "container-runs-env", token, 0, null, omitHeader: true); context.Errors.Check(); Trace.Info($"Environments evaluate result: {StringUtil.ConvertToJson(evaluateResult)}"); @@ -232,48 +224,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: false); - 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, @@ -358,9 +308,7 @@ namespace GitHub.Runner.Worker IExecutionContext executionContext, TemplateContext context, TemplateToken inputsToken, - Int32 fileID, - MappingToken envComposite = null - ) + Int32 fileID) { Trace.Info($"COMPOSITE ACTIONS FILEID: {fileID}"); @@ -492,15 +440,9 @@ namespace GitHub.Runner.Worker return new CompositeActionExecutionData() { Steps = stepsLoaded, - Environment = envComposite }; } } - // 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 5c8cd68fa..1a0a197c2 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -45,29 +45,6 @@ namespace GitHub.Runner.Worker.Handlers inputsData[i.Key] = new StringContextData(i.Value); } - - // Get Environment Data for Composite Action - var extraExpressionValues = new Dictionary(StringComparer.OrdinalIgnoreCase); - 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) @@ -107,8 +84,8 @@ namespace GitHub.Runner.Worker.Handlers actionRunner.Stage = stage; 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" ],