Add better step telemetry and tracing for composite Actions (#1229)

* Add Step Telemetry

* better telemetry and tracing

* cleanup
This commit is contained in:
Thomas Boop
2021-07-30 10:45:49 -04:00
committed by GitHub
parent 4e95d0d6ad
commit 92ec3d0f29
9 changed files with 192 additions and 30 deletions

View File

@@ -23,18 +23,6 @@ namespace GitHub.Runner.Worker.Handlers
public override void PrintActionDetails(ActionRunStage stage)
{
// We don't want to display the internal workings if composite (similar/equivalent information can be found in debug)
void writeDetails(string message)
{
if (ExecutionContext.IsEmbedded)
{
ExecutionContext.Debug(message);
}
else
{
ExecutionContext.Output(message);
}
}
if (stage == ActionRunStage.Post)
{
@@ -52,7 +40,7 @@ namespace GitHub.Runner.Worker.Handlers
firstLine = firstLine.Substring(0, firstNewLine);
}
writeDetails(ExecutionContext.IsEmbedded ? $"Run {firstLine}" : $"##[group]Run {firstLine}");
ExecutionContext.WriteDetails(ExecutionContext.IsEmbedded ? $"Run {firstLine}" : $"##[group]Run {firstLine}");
}
else
{
@@ -63,7 +51,7 @@ namespace GitHub.Runner.Worker.Handlers
foreach (var line in multiLines)
{
// Bright Cyan color
writeDetails($"\x1b[36;1m{line}\x1b[0m");
ExecutionContext.WriteDetails($"\x1b[36;1m{line}\x1b[0m");
}
string argFormat;
@@ -122,23 +110,23 @@ namespace GitHub.Runner.Worker.Handlers
if (!string.IsNullOrEmpty(shellCommandPath))
{
writeDetails($"shell: {shellCommandPath} {argFormat}");
ExecutionContext.WriteDetails($"shell: {shellCommandPath} {argFormat}");
}
else
{
writeDetails($"shell: {shellCommand} {argFormat}");
ExecutionContext.WriteDetails($"shell: {shellCommand} {argFormat}");
}
if (this.Environment?.Count > 0)
{
writeDetails("env:");
ExecutionContext.WriteDetails("env:");
foreach (var env in this.Environment)
{
writeDetails($" {env.Key}: {env.Value}");
ExecutionContext.WriteDetails($" {env.Key}: {env.Value}");
}
}
writeDetails(ExecutionContext.IsEmbedded ? "" : "##[endgroup]");
ExecutionContext.WriteDetails(ExecutionContext.IsEmbedded ? "" : "##[endgroup]");
}
public async Task RunAsync(ActionRunStage stage)
@@ -156,6 +144,16 @@ namespace GitHub.Runner.Worker.Handlers
var githubContext = ExecutionContext.ExpressionValues["github"] as GitHubContext;
ArgUtil.NotNull(githubContext, nameof(githubContext));
// Add Telemetry to JobContext to send with JobCompleteMessage
if (stage == ActionRunStage.Main)
{
var telemetry = new ActionsStepTelemetry {
IsEmbedded = ExecutionContext.IsEmbedded,
Type = "run",
};
ExecutionContext.Root.ActionsStepsTelemetry.Add(telemetry);
}
var tempDirectory = HostContext.GetDirectory(WellKnownDirectory.Temp);
Inputs.TryGetValue("script", out var contents);