mirror of
https://github.com/actions/runner.git
synced 2025-12-13 19:03:44 +00:00
Check runner group when there is only default runner group. (#1172)
* Check runner group when there is only `default` runner group. * L0
This commit is contained in:
@@ -165,7 +165,7 @@ namespace GitHub.Runner.Listener.Configuration
|
|||||||
List<TaskAgentPool> agentPools = await _runnerServer.GetAgentPoolsAsync();
|
List<TaskAgentPool> agentPools = await _runnerServer.GetAgentPoolsAsync();
|
||||||
TaskAgentPool defaultPool = agentPools?.Where(x => x.IsInternal).FirstOrDefault();
|
TaskAgentPool defaultPool = agentPools?.Where(x => x.IsInternal).FirstOrDefault();
|
||||||
|
|
||||||
if (agentPools?.Where(x => !x.IsHosted).Count() > 1)
|
if (agentPools?.Where(x => !x.IsHosted).Count() > 0)
|
||||||
{
|
{
|
||||||
poolName = command.GetRunnerGroupName(defaultPool?.Name);
|
poolName = command.GetRunnerGroupName(defaultPool?.Name);
|
||||||
_term.WriteLine();
|
_term.WriteLine();
|
||||||
|
|||||||
@@ -189,5 +189,48 @@ namespace GitHub.Runner.Common.Tests.Listener.Configuration
|
|||||||
_runnerServer.Verify(x => x.AddAgentAsync(It.IsAny<int>(), It.Is<TaskAgent>(a => a.Labels.Select(x => x.Name).ToHashSet().SetEquals(expectedLabels))), Times.Once);
|
_runnerServer.Verify(x => x.AddAgentAsync(It.IsAny<int>(), It.Is<TaskAgent>(a => a.Labels.Select(x => x.Name).ToHashSet().SetEquals(expectedLabels))), Times.Once);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[Trait("Level", "L0")]
|
||||||
|
[Trait("Category", "ConfigurationManagement")]
|
||||||
|
public async Task ConfigureErrorOnMissingRunnerGroup()
|
||||||
|
{
|
||||||
|
using (TestHostContext tc = CreateTestContext())
|
||||||
|
{
|
||||||
|
var expectedPools = new List<TaskAgentPool>() { new TaskAgentPool(_defaultRunnerGroupName) { Id = _defaultRunnerGroupId, IsInternal = true } };
|
||||||
|
_runnerServer.Setup(x => x.GetAgentPoolsAsync(It.IsAny<string>(), It.IsAny<TaskAgentPoolType>())).Returns(Task.FromResult(expectedPools));
|
||||||
|
|
||||||
|
Tracing trace = tc.GetTrace();
|
||||||
|
|
||||||
|
trace.Info("Creating config manager");
|
||||||
|
IConfigurationManager configManager = new ConfigurationManager();
|
||||||
|
configManager.Initialize(tc);
|
||||||
|
|
||||||
|
|
||||||
|
trace.Info("Preparing command line arguments");
|
||||||
|
var command = new CommandSettings(
|
||||||
|
tc,
|
||||||
|
new[]
|
||||||
|
{
|
||||||
|
"configure",
|
||||||
|
"--url", _expectedServerUrl,
|
||||||
|
"--name", _expectedAgentName,
|
||||||
|
"--runnergroup", "notexists",
|
||||||
|
"--work", _expectedWorkFolder,
|
||||||
|
"--auth", _expectedAuthType,
|
||||||
|
"--token", _expectedToken,
|
||||||
|
});
|
||||||
|
trace.Info("Constructed.");
|
||||||
|
_store.Setup(x => x.IsConfigured()).Returns(false);
|
||||||
|
_configMgrAgentSettings = null;
|
||||||
|
|
||||||
|
trace.Info("Ensuring all the required parameters are available in the command line parameter");
|
||||||
|
var ex = await Assert.ThrowsAsync<TaskAgentPoolNotFoundException>(() => configManager.ConfigureAsync(command));
|
||||||
|
|
||||||
|
Assert.Contains("notexists", ex.Message);
|
||||||
|
|
||||||
|
_runnerServer.Verify(x => x.GetAgentPoolsAsync(It.IsAny<string>(), It.Is<TaskAgentPoolType>(p => p == TaskAgentPoolType.Automation)), Times.Exactly(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user