mirror of
https://github.com/actions/runner.git
synced 2025-12-13 19:03:44 +00:00
Fix issues for composite actions (Run Service flow) (#3446)
This commit is contained in:
@@ -773,6 +773,82 @@ namespace GitHub.Runner.Common.Tests.Worker
|
||||
[Trait("Level", "L0")]
|
||||
[Trait("Category", "Worker")]
|
||||
public void PublishStepResult_EmbeddedStep()
|
||||
{
|
||||
using (TestHostContext hc = CreateTestContext())
|
||||
{
|
||||
// Job request
|
||||
TaskOrchestrationPlanReference plan = new();
|
||||
TimelineReference timeline = new();
|
||||
Guid jobId = Guid.NewGuid();
|
||||
string jobName = "some job name";
|
||||
var variables = new Dictionary<string, VariableValue>()
|
||||
{
|
||||
["RunService.FixEmbeddedIssues"] = new VariableValue("true"),
|
||||
};
|
||||
var jobRequest = new Pipelines.AgentJobRequestMessage(plan, timeline, jobId, jobName, jobName, null, null, null, variables, new List<MaskHint>(), new Pipelines.JobResources(), new Pipelines.ContextData.DictionaryContextData(), new Pipelines.WorkspaceOptions(), new List<Pipelines.ActionStep>(), null, null, null, null, null);
|
||||
jobRequest.Resources.Repositories.Add(new Pipelines.RepositoryResource()
|
||||
{
|
||||
Alias = Pipelines.PipelineConstants.SelfAlias,
|
||||
Id = "github",
|
||||
Version = "sha1"
|
||||
});
|
||||
jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData();
|
||||
|
||||
// Mocks
|
||||
var pagingLogger = new Mock<IPagingLogger>();
|
||||
var pagingLogger2 = new Mock<IPagingLogger>();
|
||||
var jobServerQueue = new Mock<IJobServerQueue>();
|
||||
jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny<Guid>(), It.IsAny<TimelineRecord>()));
|
||||
hc.EnqueueInstance(pagingLogger.Object);
|
||||
hc.EnqueueInstance(pagingLogger2.Object);
|
||||
hc.SetSingleton(jobServerQueue.Object);
|
||||
|
||||
// Job context
|
||||
var jobContext = new Runner.Worker.ExecutionContext();
|
||||
jobContext.Initialize(hc);
|
||||
jobContext.InitializeJob(jobRequest, CancellationToken.None);
|
||||
jobContext.Start();
|
||||
|
||||
// Step 1 context
|
||||
var step1 = jobContext.CreateChild(Guid.NewGuid(), "my_step", "my_step", null, null, ActionRunStage.Main);
|
||||
step1.Start();
|
||||
|
||||
// Embedded step 1a context
|
||||
var embeddedStep1a = step1.CreateEmbeddedChild(null, null, Guid.NewGuid(), ActionRunStage.Main);
|
||||
embeddedStep1a.Start();
|
||||
embeddedStep1a.StepTelemetry.Type = "node16";
|
||||
embeddedStep1a.StepTelemetry.Action = "actions/checkout";
|
||||
embeddedStep1a.StepTelemetry.Ref = "v2";
|
||||
embeddedStep1a.AddIssue(new Issue() { Type = IssueType.Error, Message = "error" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1a.AddIssue(new Issue() { Type = IssueType.Warning, Message = "warning" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1a.AddIssue(new Issue() { Type = IssueType.Notice, Message = "notice" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1a.Complete();
|
||||
|
||||
// Embedded step 1b context
|
||||
var embeddedStep1b = step1.CreateEmbeddedChild(null, null, Guid.NewGuid(), ActionRunStage.Main);
|
||||
embeddedStep1b.Start();
|
||||
embeddedStep1b.StepTelemetry.Type = "node16";
|
||||
embeddedStep1b.StepTelemetry.Action = "actions/checkout";
|
||||
embeddedStep1b.StepTelemetry.Ref = "v2";
|
||||
embeddedStep1b.AddIssue(new Issue() { Type = IssueType.Error, Message = "error 2" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1b.AddIssue(new Issue() { Type = IssueType.Warning, Message = "warning 2" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1b.AddIssue(new Issue() { Type = IssueType.Notice, Message = "notice 2" }, ExecutionContextLogOptions.Default);
|
||||
embeddedStep1b.Complete();
|
||||
|
||||
step1.Complete();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(3, jobContext.Global.StepsResult.Count);
|
||||
Assert.Equal(0, jobContext.Global.StepsResult[0].Annotations.Count);
|
||||
Assert.Equal(0, jobContext.Global.StepsResult[1].Annotations.Count);
|
||||
Assert.Equal(6, jobContext.Global.StepsResult[2].Annotations.Count);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Level", "L0")]
|
||||
[Trait("Category", "Worker")]
|
||||
public void PublishStepResult_EmbeddedStep_Legacy()
|
||||
{
|
||||
using (TestHostContext hc = CreateTestContext())
|
||||
{
|
||||
@@ -807,7 +883,7 @@ namespace GitHub.Runner.Common.Tests.Worker
|
||||
ec.InitializeJob(jobRequest, CancellationToken.None);
|
||||
ec.Start();
|
||||
|
||||
var embeddedStep = ec.CreateChild(Guid.NewGuid(), "action_1_pre", "action_1_pre", null, null, ActionRunStage.Main, isEmbedded: true);
|
||||
var embeddedStep = ec.CreateEmbeddedChild(null, null, Guid.NewGuid(), ActionRunStage.Main);
|
||||
embeddedStep.Start();
|
||||
|
||||
embeddedStep.StepTelemetry.Type = "node16";
|
||||
|
||||
Reference in New Issue
Block a user