From 46245a1a71b07c81b83ac916cd5201d88c129b79 Mon Sep 17 00:00:00 2001 From: Ethan Chiu Date: Mon, 3 Aug 2020 16:30:37 -0400 Subject: [PATCH] Resolve Template Error by Adding ExpressionFunctions --- src/Runner.Worker/ActionManifestManager.cs | 3 +++ src/Runner.Worker/ActionRunner.cs | 15 +++++++++++---- .../Handlers/CompositeActionHandler.cs | 8 +++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Runner.Worker/ActionManifestManager.cs b/src/Runner.Worker/ActionManifestManager.cs index 7b0315f2e..e91f7f558 100644 --- a/src/Runner.Worker/ActionManifestManager.cs +++ b/src/Runner.Worker/ActionManifestManager.cs @@ -284,6 +284,9 @@ namespace GitHub.Runner.Worker if (token != null) { var templateContext = CreateTemplateContext(executionContext); + Trace.Info($"Template context GitHub: {StringUtil.ConvertToJson(templateContext.ExpressionValues["github"])}"); + + Trace.Info($"Template context keys: {StringUtil.ConvertToJson(templateContext.ExpressionValues.Keys)}"); try { var evaluateResult = TemplateEvaluator.Evaluate(templateContext, "input-default-context", token, 0, null, omitHeader: true); diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index 8adf1c52d..72c67bbd1 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -176,10 +176,17 @@ namespace GitHub.Runner.Worker // We need to explitly set the default values of certain things we need like the // default repository - if (ExecutionContext.GetGitHubContext("repository") == null) - { - ExecutionContext.SetGitHubContext("repository", definition.Directory); - } + // if (ExecutionContext.GetGitHubContext("repository") == null) + // { + // ExecutionContext.SetGitHubContext("repository", definition.Directory); + // } + + // var githubContext = ExecutionContext.ExpressionValues["github"] as GitHubContext; + + // foreach (var pair in githubContext) + // { + // ExecutionContext.SetGitHubContext(pair.Key, pair.Value as StringContextData); + // } // Merge the default inputs from the definition if (definition.Data?.Inputs != null) diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs index 96e4ef4d5..97ff85982 100644 --- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs +++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs @@ -5,11 +5,14 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using GitHub.DistributedTask.Expressions2; using GitHub.DistributedTask.ObjectTemplating.Tokens; using GitHub.DistributedTask.Pipelines.ContextData; +using GitHub.DistributedTask.Pipelines.ObjectTemplating; using GitHub.DistributedTask.WebApi; using GitHub.Runner.Common; using GitHub.Runner.Sdk; +using GitHub.Runner.Worker.Expressions; using Pipelines = GitHub.DistributedTask.Pipelines; @@ -35,7 +38,7 @@ namespace GitHub.Runner.Worker.Handlers var githubContext = ExecutionContext.ExpressionValues["github"] as GitHubContext; ArgUtil.NotNull(githubContext, nameof(githubContext)); - Trace.Info($"Github Context: {StringUtil.ConvertToJson(githubContext)}"); + // Trace.Info($"Github Context: {StringUtil.ConvertToJson(githubContext)}"); // Resolve action steps var actionSteps = Data.Steps; @@ -47,6 +50,8 @@ namespace GitHub.Runner.Worker.Handlers inputsData[i.Key] = new StringContextData(i.Value); } + Trace.Info($"Composite Actions Inputs {StringUtil.ConvertToJson(inputsData)}"); + // Initialize Composite Steps List of Steps var compositeSteps = new List(); @@ -78,6 +83,7 @@ namespace GitHub.Runner.Worker.Handlers // Set GITHUB_ACTION_PATH step.ExecutionContext.ExpressionValues["github"] = compositeGitHubContext; step.ExecutionContext.SetGitHubContext("action_path", ActionDirectory); + step.ExecutionContext.ExpressionFunctions.Add(new FunctionInfo(PipelineTemplateConstants.HashFiles, 1, byte.MaxValue)); compositeSteps.Add(step); }