From 43a3006e7b77d49c977a65fcc6ed968e9a39b179 Mon Sep 17 00:00:00 2001 From: Ethan Chiu Date: Mon, 22 Jun 2020 14:43:50 -0400 Subject: [PATCH] Initial Start for FileTable stuff --- src/Runner.Worker/ActionManager.cs | 2 ++ src/Runner.Worker/ActionManifestManager.cs | 17 ++++++++++------- .../Handlers/CompositeActionHandler.cs | 4 ++-- .../PipelineTemplateEvaluator.cs | 5 +++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/Runner.Worker/ActionManager.cs b/src/Runner.Worker/ActionManager.cs index 3bdba9df3..6acbb837a 100644 --- a/src/Runner.Worker/ActionManager.cs +++ b/src/Runner.Worker/ActionManager.cs @@ -402,6 +402,7 @@ namespace GitHub.Runner.Worker Trace.Verbose($"Details: {StringUtil.ConvertToJson(compositeAction.Steps)}"); Trace.Info($"Load: {compositeAction.Environment} environment steps"); Trace.Info($"Details: {StringUtil.ConvertToJson(compositeAction.Environment)}"); + Trace.Info($"Composite Action File ID: {compositeAction.FileID.ToString()}"); } else { @@ -1288,6 +1289,7 @@ namespace GitHub.Runner.Worker public override bool HasPost => false; public List Steps { get; set; } public MappingToken Environment { get; set; } + public Int32 FileID { get; set; } } public abstract class ActionExecutionData diff --git a/src/Runner.Worker/ActionManifestManager.cs b/src/Runner.Worker/ActionManifestManager.cs index bb9aef43c..3f6835aa6 100644 --- a/src/Runner.Worker/ActionManifestManager.cs +++ b/src/Runner.Worker/ActionManifestManager.cs @@ -27,7 +27,7 @@ namespace GitHub.Runner.Worker Dictionary EvaluateContainerEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary extraExpressionValues); - public Dictionary EvaluateCompositeActionEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary extraExpressionValues); + public Dictionary EvaluateCompositeActionEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary extraExpressionValues, Int32 fileID); string EvaluateDefaultInput(IExecutionContext executionContext, string inputName, TemplateToken token); } @@ -100,7 +100,7 @@ namespace GitHub.Runner.Worker break; case "runs": - actionDefinition.Execution = ConvertRuns(executionContext, context, actionPair.Value, envComposite); + actionDefinition.Execution = ConvertRuns(executionContext, context, actionPair.Value, envComposite, fileId); break; default: @@ -225,7 +225,8 @@ namespace GitHub.Runner.Worker public Dictionary EvaluateCompositeActionEnvironment( IExecutionContext executionContext, MappingToken token, - IDictionary extraExpressionValues) + IDictionary extraExpressionValues, + Int32 fileID) { var result = new Dictionary(StringComparer.OrdinalIgnoreCase); @@ -234,7 +235,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, "runs-env", token, 0, fileID, omitHeader: true); context.Errors.Check(); // Mapping @@ -348,7 +349,8 @@ namespace GitHub.Runner.Worker IExecutionContext executionContext, TemplateContext context, TemplateToken inputsToken, - MappingToken envComposite) + MappingToken envComposite = null, + Int32 fileID = default(Int32)) { var runsMapping = inputsToken.AssertMapping("runs"); var usingToken = default(StringToken); @@ -415,7 +417,7 @@ namespace GitHub.Runner.Worker { var steps = run.Value.AssertSequence("steps"); var evaluator = executionContext.ToPipelineTemplateEvaluator(); - stepsLoaded = evaluator.LoadCompositeSteps(steps); + stepsLoaded = evaluator.LoadCompositeSteps(steps, fileID); break; } throw new Exception("You aren't supposed to be using Composite Actions yet!"); @@ -477,7 +479,8 @@ namespace GitHub.Runner.Worker return new CompositeActionExecutionData() { Steps = stepsLoaded, - Environment = envComposite + Environment = envComposite, + FileID = fileID }; } } diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs index 45e055faf..05cc18c48 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -53,7 +53,7 @@ namespace GitHub.Runner.Worker.Handlers // 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 compositeEnvData = manifestManager.EvaluateCompositeActionEnvironment(ExecutionContext, Data.Environment, extraExpressionValues, Data.FileID); var envData = new Dictionary(); // Copy over parent environment @@ -106,7 +106,7 @@ namespace GitHub.Runner.Worker.Handlers actionRunner.Stage = stage; actionRunner.Condition = aStep.Condition; actionRunner.DisplayName = aStep.DisplayName; - + ExecutionContext.RegisterNestedStep(actionRunner, inputsData, location, envData); location++; } diff --git a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateEvaluator.cs b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateEvaluator.cs index 55076e670..a54e382fd 100644 --- a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateEvaluator.cs +++ b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateEvaluator.cs @@ -160,7 +160,8 @@ namespace GitHub.DistributedTask.Pipelines.ObjectTemplating } public List LoadCompositeSteps( - TemplateToken token + TemplateToken token, + Int32 fileID ) { var result = default(List); @@ -170,7 +171,7 @@ namespace GitHub.DistributedTask.Pipelines.ObjectTemplating // TODO: we might want to to have a bool to prevent it from filling in with missing context w/ dummy variables try { - token = TemplateEvaluator.Evaluate(context, PipelineTemplateConstants.StepsInTemplate, token, 0, null, omitHeader: true); + token = TemplateEvaluator.Evaluate(context, PipelineTemplateConstants.StepsInTemplate, token, 0, fileID, omitHeader: true); context.Errors.Check(); result = PipelineTemplateConverter.ConvertToSteps(context, token); }