diff --git a/src/Runner.Listener/BrokerMessageListener.cs b/src/Runner.Listener/BrokerMessageListener.cs index 898991811..7a0fe903d 100644 --- a/src/Runner.Listener/BrokerMessageListener.cs +++ b/src/Runner.Listener/BrokerMessageListener.cs @@ -9,9 +9,9 @@ using System.Threading; using System.Threading.Tasks; using GitHub.DistributedTask.WebApi; using GitHub.Runner.Common; +using GitHub.Runner.Common.Util; using GitHub.Runner.Listener.Configuration; using GitHub.Runner.Sdk; -using GitHub.Runner.Common.Util; using GitHub.Services.Common; using GitHub.Services.OAuth; using GitHub.Services.WebApi; @@ -27,6 +27,7 @@ namespace GitHub.Runner.Listener private CancellationTokenSource _getMessagesTokenSource; private VssCredentials _creds; private TaskAgentSession _session; + private IRunnerServer _runnerServer; private IBrokerServer _brokerServer; private readonly Dictionary _sessionCreationExceptionTracker = new(); private bool _accessTokenRevoked = false; @@ -40,6 +41,7 @@ namespace GitHub.Runner.Listener base.Initialize(hostContext); _term = HostContext.GetService(); + _runnerServer = HostContext.GetService(); _brokerServer = HostContext.GetService(); } @@ -50,7 +52,8 @@ namespace GitHub.Runner.Listener // Settings var configManager = HostContext.GetService(); _settings = configManager.LoadSettings(); - var serverUrl = _settings.ServerUrlV2; + var serverUrlV2 = _settings.ServerUrlV2; + var serverUrl = _settings.ServerUrl; Trace.Info(_settings); if (string.IsNullOrEmpty(_settings.ServerUrlV2)) @@ -84,9 +87,17 @@ namespace GitHub.Runner.Listener try { Trace.Info("Connecting to the Broker Server..."); - await _brokerServer.ConnectAsync(new Uri(serverUrl), _creds); + await _brokerServer.ConnectAsync(new Uri(serverUrlV2), _creds); Trace.Info("VssConnection created"); + if (!string.IsNullOrEmpty(serverUrl) && + !string.Equals(serverUrl, serverUrlV2, StringComparison.OrdinalIgnoreCase)) + { + Trace.Info("Connecting to the Runner server..."); + await _runnerServer.ConnectAsync(new Uri(serverUrl), _creds); + Trace.Info("VssConnection created"); + } + _term.WriteLine(); _term.WriteSuccessMessage("Connected to GitHub"); _term.WriteLine(); @@ -131,7 +142,7 @@ namespace GitHub.Runner.Listener // Check whether we get 401 because the runner registration already removed by the service. // If the runner registration get deleted, we can't exchange oauth token. Trace.Error("Test oauth app registration."); - var oauthTokenProvider = new VssOAuthTokenProvider(vssOAuthCred, new Uri(serverUrl)); + var oauthTokenProvider = new VssOAuthTokenProvider(vssOAuthCred, new Uri(serverUrlV2)); var authError = await oauthTokenProvider.ValidateCredentialAsync(token); if (string.Equals(authError, "invalid_client", StringComparison.OrdinalIgnoreCase)) { diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index cf83dedae..834c249e3 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -360,7 +360,7 @@ namespace GitHub.Runner.Listener } } - private IMessageListener GetMesageListener(RunnerSettings settings) + private IMessageListener GetMessageListener(RunnerSettings settings) { if (settings.UseV2Flow) { @@ -379,7 +379,7 @@ namespace GitHub.Runner.Listener try { Trace.Info(nameof(RunAsync)); - _listener = GetMesageListener(settings); + _listener = GetMessageListener(settings); CreateSessionResult createSessionResult = await _listener.CreateSessionAsync(HostContext.RunnerShutdownToken); if (createSessionResult == CreateSessionResult.SessionConflict) { diff --git a/src/Test/L0/Listener/BrokerMessageListenerL0.cs b/src/Test/L0/Listener/BrokerMessageListenerL0.cs index 64a71515c..245438d15 100644 --- a/src/Test/L0/Listener/BrokerMessageListenerL0.cs +++ b/src/Test/L0/Listener/BrokerMessageListenerL0.cs @@ -16,6 +16,7 @@ namespace GitHub.Runner.Common.Tests.Listener private readonly RunnerSettings _settings; private readonly Mock _config; private readonly Mock _brokerServer; + private readonly Mock _runnerServer; private readonly Mock _credMgr; private Mock _store; @@ -28,6 +29,7 @@ namespace GitHub.Runner.Common.Tests.Listener _credMgr = new Mock(); _store = new Mock(); _brokerServer = new Mock(); + _runnerServer = new Mock(); } [Fact] @@ -75,6 +77,7 @@ namespace GitHub.Runner.Common.Tests.Listener tc.SetSingleton(_credMgr.Object); tc.SetSingleton(_store.Object); tc.SetSingleton(_brokerServer.Object); + tc.SetSingleton(_runnerServer.Object); return tc; } }