mirror of
https://github.com/actions/runner.git
synced 2025-12-18 00:07:08 +00:00
Env Flow => Able to get env variables and overwrite current env variables => but it doesn't 'stick'
This commit is contained in:
@@ -27,6 +27,7 @@ namespace GitHub.Runner.Worker
|
||||
|
||||
Dictionary<string, string> EvaluateContainerEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary<string, PipelineContextData> extraExpressionValues);
|
||||
|
||||
public Dictionary<string, string> EvaluateCompositeActionEnvironment(IExecutionContext executionContext, MappingToken token, IDictionary<string, PipelineContextData> extraExpressionValues);
|
||||
string EvaluateDefaultInput(IExecutionContext executionContext, string inputName, TemplateToken token);
|
||||
}
|
||||
|
||||
@@ -214,6 +215,65 @@ namespace GitHub.Runner.Worker
|
||||
return result;
|
||||
}
|
||||
|
||||
// TODO: Add Evaluate Composite Action Env Function Here
|
||||
// Steps will be evaluated already in StepsRunner
|
||||
public Dictionary<string, string> EvaluateCompositeActionEnvironment(
|
||||
IExecutionContext executionContext,
|
||||
MappingToken token,
|
||||
IDictionary<string, PipelineContextData> extraExpressionValues)
|
||||
{
|
||||
var result = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
if (token != null)
|
||||
{
|
||||
var context = CreateContext(executionContext, extraExpressionValues);
|
||||
try
|
||||
{
|
||||
var evaluateResult = TemplateEvaluator.Evaluate(context, "container-runs-env", token, 0, null, omitHeader: true);
|
||||
context.Errors.Check();
|
||||
if (evaluateResult != null) {
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment evaluateResult {evaluateResult}");
|
||||
} else {
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment evaluateResult is null");
|
||||
}
|
||||
|
||||
|
||||
Trace.Info($"Composite Action Environments evaluate result: {StringUtil.ConvertToJson(evaluateResult)}");
|
||||
|
||||
// Mapping
|
||||
var mapping = evaluateResult.AssertMapping("composite env");
|
||||
if (mapping != null) {
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment Mapping {mapping}");
|
||||
} else {
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment Mapping is null");
|
||||
}
|
||||
|
||||
foreach (var pair in mapping)
|
||||
{
|
||||
// Literal key
|
||||
var key = pair.Key.AssertString("composite env key");
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment Key{key.Value}");
|
||||
|
||||
// Literal value
|
||||
var value = pair.Value.AssertString("composite env value");
|
||||
Trace.Info($"EvaluateCompositeActionEnvironment Value{value.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,
|
||||
@@ -426,6 +486,7 @@ namespace GitHub.Runner.Worker
|
||||
return new CompositeActionExecutionData()
|
||||
{
|
||||
Steps = stepsLoaded,
|
||||
Environment = envToken
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user