Compare commits

...

3 Commits

Author SHA1 Message Date
Ferenc Hammerl
6cff7cd927 Assert in hashfiles that executionContext is available 2023-03-06 23:23:59 +01:00
Ferenc Hammerl
60b29546fc Pass on executioncontext from actionRunner 2023-03-06 23:23:21 +01:00
Ferenc Hammerl
d91c79f677 Add expressionState to EvaluateStepInputs and CreateContext 2023-03-06 23:23:01 +01:00
3 changed files with 8 additions and 4 deletions

View File

@@ -181,7 +181,7 @@ namespace GitHub.Runner.Worker
else else
{ {
var templateEvaluator = ExecutionContext.ToPipelineTemplateEvaluator(); var templateEvaluator = ExecutionContext.ToPipelineTemplateEvaluator();
inputs = templateEvaluator.EvaluateStepInputs(Action.Inputs, ExecutionContext.ExpressionValues, ExecutionContext.ExpressionFunctions); inputs = templateEvaluator.EvaluateStepInputs(Action.Inputs, ExecutionContext.ExpressionValues, ExecutionContext.ExpressionFunctions, ExecutionContext.ToExpressionState());
} }
var userInputs = new HashSet<string>(StringComparer.OrdinalIgnoreCase); var userInputs = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
@@ -355,7 +355,7 @@ namespace GitHub.Runner.Worker
{ {
DictionaryContextData expressionValues = ExecutionContext.GetExpressionValues(stepHost); DictionaryContextData expressionValues = ExecutionContext.GetExpressionValues(stepHost);
var templateEvaluator = ExecutionContext.ToPipelineTemplateEvaluator(); var templateEvaluator = ExecutionContext.ToPipelineTemplateEvaluator();
var inputs = templateEvaluator.EvaluateStepInputs(Action.Inputs, expressionValues, ExecutionContext.ExpressionFunctions); var inputs = templateEvaluator.EvaluateStepInputs(Action.Inputs, expressionValues, ExecutionContext.ExpressionFunctions, ExecutionContext.ToExpressionState());
return inputs; return inputs;
} }

View File

@@ -29,6 +29,9 @@ namespace GitHub.Runner.Worker.Expressions
githubContext.TryGetValue(PipelineTemplateConstants.Workspace, out var workspace); githubContext.TryGetValue(PipelineTemplateConstants.Workspace, out var workspace);
var workspaceData = workspace as StringContextData; var workspaceData = workspace as StringContextData;
ArgUtil.NotNull(workspaceData, nameof(workspaceData)); ArgUtil.NotNull(workspaceData, nameof(workspaceData));
var executionContext = templateContext.State[nameof(IExecutionContext)] as IExecutionContext;
ArgUtil.NotNull(executionContext, nameof(executionContext));
string githubWorkspace = workspaceData.Value; string githubWorkspace = workspaceData.Value;
bool followSymlink = false; bool followSymlink = false;

View File

@@ -164,13 +164,14 @@ namespace GitHub.DistributedTask.Pipelines.ObjectTemplating
public Dictionary<String, String> EvaluateStepInputs( public Dictionary<String, String> EvaluateStepInputs(
TemplateToken token, TemplateToken token,
DictionaryContextData contextData, DictionaryContextData contextData,
IList<IFunctionInfo> expressionFunctions) IList<IFunctionInfo> expressionFunctions,
IEnumerable<KeyValuePair<String, Object>> expressionState = null)
{ {
var result = default(Dictionary<String, String>); var result = default(Dictionary<String, String>);
if (token != null && token.Type != TokenType.Null) if (token != null && token.Type != TokenType.Null)
{ {
var context = CreateContext(contextData, expressionFunctions); var context = CreateContext(contextData, expressionFunctions, expressionState);
try try
{ {
token = TemplateEvaluator.Evaluate(context, PipelineTemplateConstants.StepWith, token, 0, null, omitHeader: true); token = TemplateEvaluator.Evaluate(context, PipelineTemplateConstants.StepWith, token, 0, null, omitHeader: true);