From f028b4e2b0c9fcc3b58dba4de83efde5e9c17ae6 Mon Sep 17 00:00:00 2001 From: Ethan Chiu <17chiue@gmail.com> Date: Wed, 29 Jul 2020 16:19:04 -0400 Subject: [PATCH] Revert JobSteps to Queue Data Structure (#625) * Revert JobSteps to Queue data structure * Revert tests --- src/Runner.Worker/ExecutionContext.cs | 6 +++--- src/Runner.Worker/JobRunner.cs | 2 +- src/Runner.Worker/StepsRunner.cs | 5 ++--- src/Test/L0/Worker/StepsRunnerL0.cs | 26 +++++++++++++------------- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/Runner.Worker/ExecutionContext.cs b/src/Runner.Worker/ExecutionContext.cs index 1aad95c9c..f5211f523 100644 --- a/src/Runner.Worker/ExecutionContext.cs +++ b/src/Runner.Worker/ExecutionContext.cs @@ -53,7 +53,7 @@ namespace GitHub.Runner.Worker JobContext JobContext { get; } // Only job level ExecutionContext has JobSteps - List JobSteps { get; } + Queue JobSteps { get; } // Only job level ExecutionContext has PostJobSteps Stack PostJobSteps { get; } @@ -144,7 +144,7 @@ namespace GitHub.Runner.Worker public GlobalContext Global { get; private set; } // Only job level ExecutionContext has JobSteps - public List JobSteps { get; private set; } + public Queue JobSteps { get; private set; } // Only job level ExecutionContext has PostJobSteps public Stack PostJobSteps { get; private set; } @@ -663,7 +663,7 @@ namespace GitHub.Runner.Worker Global.PrependPath = new List(); // JobSteps for job ExecutionContext - JobSteps = new List(); + JobSteps = new Queue(); // PostJobSteps for job ExecutionContext PostJobSteps = new Stack(); diff --git a/src/Runner.Worker/JobRunner.cs b/src/Runner.Worker/JobRunner.cs index 3ea9e0e04..4fb6662eb 100644 --- a/src/Runner.Worker/JobRunner.cs +++ b/src/Runner.Worker/JobRunner.cs @@ -152,7 +152,7 @@ namespace GitHub.Runner.Worker { foreach (var step in jobSteps) { - jobContext.JobSteps.Add(step); + jobContext.JobSteps.Enqueue(step); } await stepsRunner.RunAsync(jobContext); diff --git a/src/Runner.Worker/StepsRunner.cs b/src/Runner.Worker/StepsRunner.cs index 7877ae6a7..40430b694 100644 --- a/src/Runner.Worker/StepsRunner.cs +++ b/src/Runner.Worker/StepsRunner.cs @@ -59,14 +59,13 @@ namespace GitHub.Runner.Worker checkPostJobActions = true; while (jobContext.PostJobSteps.TryPop(out var postStep)) { - jobContext.JobSteps.Add(postStep); + jobContext.JobSteps.Enqueue(postStep); } continue; } - var step = jobContext.JobSteps[0]; - jobContext.JobSteps.RemoveAt(0); + var step = jobContext.JobSteps.Dequeue(); Trace.Info($"Processing step: DisplayName='{step.DisplayName}'"); ArgUtil.NotNull(step.ExecutionContext, nameof(step.ExecutionContext)); diff --git a/src/Test/L0/Worker/StepsRunnerL0.cs b/src/Test/L0/Worker/StepsRunnerL0.cs index 87ef812c3..3d97b0110 100644 --- a/src/Test/L0/Worker/StepsRunnerL0.cs +++ b/src/Test/L0/Worker/StepsRunnerL0.cs @@ -82,7 +82,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -117,7 +117,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -156,7 +156,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Steps.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Steps.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -210,7 +210,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Steps.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Steps.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -289,7 +289,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Steps.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Steps.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -332,7 +332,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Step.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Step.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -363,7 +363,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -393,7 +393,7 @@ namespace GitHub.Runner.Common.Tests.Worker { _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(variableSet.Select(x => x.Object).ToList())); + _ec.Setup(x => x.JobSteps).Returns(new Queue(variableSet.Select(x => x.Object).ToList())); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -419,7 +419,7 @@ namespace GitHub.Runner.Common.Tests.Worker _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(new[] { step1.Object })); + _ec.Setup(x => x.JobSteps).Returns(new Queue(new[] { step1.Object })); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -457,7 +457,7 @@ namespace GitHub.Runner.Common.Tests.Worker _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(new[] { step1.Object, step2.Object })); + _ec.Setup(x => x.JobSteps).Returns(new Queue(new[] { step1.Object, step2.Object })); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -495,7 +495,7 @@ namespace GitHub.Runner.Common.Tests.Worker _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(new[] { step1.Object, step2.Object })); + _ec.Setup(x => x.JobSteps).Returns(new Queue(new[] { step1.Object, step2.Object })); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -526,7 +526,7 @@ namespace GitHub.Runner.Common.Tests.Worker _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(new[] { step1.Object, step2.Object, step3.Object })); + _ec.Setup(x => x.JobSteps).Returns(new Queue(new[] { step1.Object, step2.Object, step3.Object })); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object); @@ -562,7 +562,7 @@ namespace GitHub.Runner.Common.Tests.Worker _ec.Object.Result = null; - _ec.Setup(x => x.JobSteps).Returns(new List(new[] { step1.Object, step2.Object, step3.Object })); + _ec.Setup(x => x.JobSteps).Returns(new Queue(new[] { step1.Object, step2.Object, step3.Object })); // Act. await _stepsRunner.RunAsync(jobContext: _ec.Object);