mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
print retrieved message
This commit is contained in:
@@ -6,6 +6,7 @@ using GitHub.Runner.Common.Util;
|
|||||||
using GitHub.Services.WebApi;
|
using GitHub.Services.WebApi;
|
||||||
using GitHub.Services.Common;
|
using GitHub.Services.Common;
|
||||||
using GitHub.Runner.Sdk;
|
using GitHub.Runner.Sdk;
|
||||||
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
|
||||||
namespace GitHub.Runner.Common
|
namespace GitHub.Runner.Common
|
||||||
@@ -14,7 +15,7 @@ namespace GitHub.Runner.Common
|
|||||||
public interface IBrokerServer : IRunnerService
|
public interface IBrokerServer : IRunnerService
|
||||||
{
|
{
|
||||||
Task ConnectAsync(Uri serverUrl, CancellationToken cancellationToken);
|
Task ConnectAsync(Uri serverUrl, CancellationToken cancellationToken);
|
||||||
Task<GitHub.DistributedTask.WebApi.TaskAgentMessage> GetMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, CancellationToken cancellationToken);
|
Task<string> GetMessageAsync(int poolId, Guid sessionId, long? lastMessageId, CancellationToken cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed class BrokerServer : RunnerService, IBrokerServer
|
public sealed class BrokerServer : RunnerService, IBrokerServer
|
||||||
@@ -29,10 +30,29 @@ namespace GitHub.Runner.Common
|
|||||||
await _httpClient.GetAsync("health", cancellationToken);
|
await _httpClient.GetAsync("health", cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<GitHub.DistributedTask.WebApi.TaskAgentMessage> GetMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, CancellationToken cancellationToken)
|
public async Task<string> GetMessageAsync(int poolId, Guid sessionId, long? lastMessageId, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
await _httpClient.GetAsync("message", cancellationToken);
|
var response = await _httpClient.GetAsync("message", cancellationToken);
|
||||||
return null;
|
if (!response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
var content = default(string);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
content = await response.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
var error = $"HTTP {(int)response.StatusCode} {Enum.GetName(typeof(HttpStatusCode), response.StatusCode)}";
|
||||||
|
if (!string.IsNullOrEmpty(content))
|
||||||
|
{
|
||||||
|
error = $"{error}: {content}";
|
||||||
|
}
|
||||||
|
throw new Exception(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
return await response.Content.ReadAsStringAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace GitHub.Runner.Listener
|
|||||||
|
|
||||||
public sealed class MessageListener : RunnerService, IMessageListener
|
public sealed class MessageListener : RunnerService, IMessageListener
|
||||||
{
|
{
|
||||||
private long? _lastMessageId;
|
// private long? _lastMessageId;
|
||||||
private RunnerSettings _settings;
|
private RunnerSettings _settings;
|
||||||
private ITerminal _term;
|
private ITerminal _term;
|
||||||
private IRunnerServer _runnerServer;
|
private IRunnerServer _runnerServer;
|
||||||
@@ -222,17 +222,15 @@ namespace GitHub.Runner.Listener
|
|||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
token.ThrowIfCancellationRequested();
|
token.ThrowIfCancellationRequested();
|
||||||
TaskAgentMessage message = null;
|
string message = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
message = await _brokerServer.GetMessageAsync(_settings.PoolId, _session.SessionId, _lastMessageId, token);
|
message = await _brokerServer.GetMessageAsync(_settings.PoolId, _session.SessionId, null/*_lastMessageId*/, token);
|
||||||
|
|
||||||
// Decrypt the message body if the session is using encryption
|
|
||||||
message = DecryptMessage(message);
|
|
||||||
|
|
||||||
|
_term.WriteLine($"{DateTime.UtcNow:u}: {message}");
|
||||||
if (message != null)
|
if (message != null)
|
||||||
{
|
{
|
||||||
_lastMessageId = message.MessageId;
|
// todo: _lastMessageId = message.MessageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (encounteringError) //print the message once only if there was an error
|
if (encounteringError) //print the message once only if there was an error
|
||||||
@@ -298,23 +296,23 @@ namespace GitHub.Runner.Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message == null)
|
// if (message == null)
|
||||||
{
|
// {
|
||||||
if (heartbeat.Elapsed > TimeSpan.FromMinutes(30))
|
// if (heartbeat.Elapsed > TimeSpan.FromMinutes(30))
|
||||||
{
|
// {
|
||||||
Trace.Info($"No message retrieved from session '{_session.SessionId}' within last 30 minutes.");
|
// Trace.Info($"No message retrieved from session '{_session.SessionId}' within last 30 minutes.");
|
||||||
heartbeat.Restart();
|
// heartbeat.Restart();
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
Trace.Verbose($"No message retrieved from session '{_session.SessionId}'.");
|
// Trace.Verbose($"No message retrieved from session '{_session.SessionId}'.");
|
||||||
}
|
// }
|
||||||
|
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
|
|
||||||
Trace.Info($"Message '{message.MessageId}' received from session '{_session.SessionId}'.");
|
// Trace.Info($"Message '{message.MessageId}' received from session '{_session.SessionId}'.");
|
||||||
return message;
|
// return message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user