progress...

This commit is contained in:
Ethan Chiu
2020-07-28 17:29:43 -04:00
parent 4c02d0a685
commit 7ab3d5ad42
2 changed files with 33 additions and 20 deletions

View File

@@ -319,43 +319,56 @@ namespace GitHub.Runner.Worker
string result = ""; string result = "";
if (token != null) if (token != null)
{ {
var templateContext = CreateTemplateContext(executionContext); // Add GitHub Expression Values
var githubContext = executionContext.ExpressionValues["github"];
Trace.Info($"GitHub Context EvaluateDefaultInputInsideComposite: {StringUtil.ConvertToJson(githubContext)}");
var temp = new Dictionary<string, PipelineContextData>();
temp["github"] = githubContext;
var templateContext = CreateTemplateContext(executionContext, temp);
try try
{ {
var evaluateResult = TemplateEvaluator.Evaluate(templateContext, "input-default-context", token, 0, null, omitHeader: true);
var evaluateResult = TemplateEvaluator.Evaluate(templateContext, "step-with", token, 0, null, omitHeader: true);
Trace.Info($"Input '{inputName}': default value evaluate result: {StringUtil.ConvertToJson(evaluateResult)}");
templateContext.Errors.Check(); templateContext.Errors.Check();
// Can't evaluate the default github.respository, etc.
// TODO: restrict to only be used for composite "uses" steps // TODO: restrict to only be used for composite "uses" steps
// Find better way to isolate only // Find better way to isolate only
// We could create a whitelist for just checkout? // We could create a whitelist for just checkout?
// (ex: "repo", "token", etc.) // (ex: "repo", "token", etc.)
if (evaluateResult is BasicExpressionToken) // if (evaluateResult is BasicExpressionToken)
{ // {
// var evaluateResult2 = TemplateEvaluator.Evaluate(templateContext, "step-with", token, 0, null, omitHeader: true); // // var evaluateResult2 = TemplateEvaluator.Evaluate(templateContext, "step-with", token, 0, null, omitHeader: true);
// templateContext.Errors.Check(); // // templateContext.Errors.Check();
// Trace.Info($"Test2 Input '{inputName}': default value evaluate result: {StringUtil.ConvertToJson(evaluateResult2)}"); // // Trace.Info($"Test2 Input '{inputName}': default value evaluate result: {StringUtil.ConvertToJson(evaluateResult2)}");
// var result2 = evaluateResult2.AssertString($"default value for input '{inputName}'").Value; // // var result2 = evaluateResult2.AssertString($"default value for input '{inputName}'").Value;
// TODO 6/28 => Try just getting it from the getgithubcontext lmao. // // TODO 6/28 => Try just getting it from the getgithubcontext lmao.
// Trace.Info($"Basic expr token: {evaluateResult}"); // // Trace.Info($"Basic expr token: {evaluateResult}");
var stringVersion = evaluateResult.AssertString($"default value for input '{inputName}'").Value; // var stringVersion = evaluateResult.AssertString($"default value for input '{inputName}'").Value;
// no we have to use the template evaluator since it's a // // no we have to use the template evaluator since it's a
// var githubTokenSplit = // // var githubTokenSplit =
// // Evaluate it // // // Evaluate it
// var evaluateResult = executionContext.GetGitHubContext(""); // // var evaluateResult = executionContext.GetGitHubContext("");
return result2; // return result2;
} // }
Trace.Info($"Input '{inputName}': default value evaluate result: {StringUtil.ConvertToJson(evaluateResult)}"); // Trace.Info($"Input '{inputName}': default value evaluate result: {StringUtil.ConvertToJson(evaluateResult)}");
// String // String
result = evaluateResult.AssertString($"default value for input '{inputName}'").Value; result = evaluateResult.AssertString($"default value for input '{inputName}'").Value;

View File

@@ -194,11 +194,11 @@ namespace GitHub.Runner.Worker
Trace.Info($"Definition Input Key: {key}"); Trace.Info($"Definition Input Key: {key}");
if (ExecutionContext.InsideComposite) if (ExecutionContext.InsideComposite)
{ {
inputs[key] = manifestManager.EvaluateDefaultInput(ExecutionContext, key, input.Value); inputs[key] = manifestManager.EvaluateDefaultInputInsideComposite(ExecutionContext, key, input.Value);
} }
else else
{ {
inputs[key] = manifestManager.EvaluateDefaultInputInsideComposite(ExecutionContext, key, input.Value); inputs[key] = manifestManager.EvaluateDefaultInput(ExecutionContext, key, input.Value);
} }
Trace.Info($"Definition Input Value: {inputs[key]}"); Trace.Info($"Definition Input Value: {inputs[key]}");
} }