Added support for custom labels (#414)

* Added support for custom labels

* ignore case

* Added interactive config for labels

* Fixing L0s

* pr comments
This commit is contained in:
Lokesh Gopu
2020-04-13 21:33:13 -04:00
committed by GitHub
parent a20ad4e121
commit f9baec4b32
11 changed files with 199 additions and 43 deletions

View File

@@ -317,7 +317,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
Environment.MachineName, // defaultValue
Validators.NonEmptyValidator, // validator
true)) // unattended
true, // unattended
false)) // isOptional
.Returns("some runner");
// Act.
@@ -344,7 +345,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
Environment.MachineName, // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some runner");
// Act.
@@ -371,7 +373,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
"some default auth", // defaultValue
Validators.AuthSchemeValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some auth");
// Act.
@@ -398,7 +401,8 @@ namespace GitHub.Runner.Common.Tests
true, // secret
string.Empty, // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some token");
// Act.
@@ -475,7 +479,8 @@ namespace GitHub.Runner.Common.Tests
true, // secret
string.Empty, // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some token");
// Act.
@@ -502,7 +507,8 @@ namespace GitHub.Runner.Common.Tests
true, // secret
string.Empty, // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some token");
// Act.
@@ -529,7 +535,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
string.Empty, // defaultValue
Validators.ServerUrlValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some url");
// Act.
@@ -556,7 +563,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
"some default account", // defaultValue
Validators.NTAccountValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some windows logon account");
// Act.
@@ -584,7 +592,8 @@ namespace GitHub.Runner.Common.Tests
true, // secret
string.Empty, // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some windows logon password");
// Act.
@@ -611,7 +620,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
"_work", // defaultValue
Validators.NonEmptyValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some work");
// Act.
@@ -640,7 +650,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
string.Empty, // defaultValue
Validators.ServerUrlValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some url");
// Act.
@@ -669,7 +680,8 @@ namespace GitHub.Runner.Common.Tests
false, // secret
string.Empty, // defaultValue
Validators.ServerUrlValidator, // validator
false)) // unattended
false, // unattended
false)) // isOptional
.Returns("some url");
// Act.

View File

@@ -145,6 +145,8 @@ namespace GitHub.Runner.Common.Tests.Listener.Configuration
IConfigurationManager configManager = new ConfigurationManager();
configManager.Initialize(tc);
var userLabels = "userlabel1,userlabel2";
trace.Info("Preparing command line arguments");
var command = new CommandSettings(
tc,
@@ -156,7 +158,8 @@ namespace GitHub.Runner.Common.Tests.Listener.Configuration
"--pool", _expectedPoolName,
"--work", _expectedWorkFolder,
"--auth", _expectedAuthType,
"--token", _expectedToken
"--token", _expectedToken,
"--labels", userLabels
});
trace.Info("Constructed.");
_store.Setup(x => x.IsConfigured()).Returns(false);
@@ -178,7 +181,10 @@ namespace GitHub.Runner.Common.Tests.Listener.Configuration
// validate GetAgentPoolsAsync gets called twice with automation pool type
_runnerServer.Verify(x => x.GetAgentPoolsAsync(It.IsAny<string>(), It.Is<TaskAgentPoolType>(p => p == TaskAgentPoolType.Automation)), Times.Exactly(2));
_runnerServer.Verify(x => x.AddAgentAsync(It.IsAny<int>(), It.Is<TaskAgent>(a => a.Labels.Contains("self-hosted") && a.Labels.Contains(VarUtil.OS) && a.Labels.Contains(VarUtil.OSArchitecture))), Times.Once);
var expectedLabels = new List<string>() { "self-hosted", VarUtil.OS, VarUtil.OSArchitecture};
expectedLabels.AddRange(userLabels.Split(",").ToList());
_runnerServer.Verify(x => x.AddAgentAsync(It.IsAny<int>(), It.Is<TaskAgent>(a => a.Labels.Select(x => x.Name).ToHashSet().SetEquals(expectedLabels))), Times.Once);
}
}
}