mirror of
https://github.com/actions/runner.git
synced 2025-12-13 10:05:23 +00:00
Compare commits
4 Commits
pje/delete
...
AddBuildIm
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8547726905 | ||
|
|
7287a14f9f | ||
|
|
cdd8a8e694 | ||
|
|
1fc63f4aaa |
@@ -5,7 +5,6 @@ using System.Threading.Tasks;
|
|||||||
using GitHub.Actions.RunService.WebApi;
|
using GitHub.Actions.RunService.WebApi;
|
||||||
using GitHub.DistributedTask.Pipelines;
|
using GitHub.DistributedTask.Pipelines;
|
||||||
using GitHub.DistributedTask.WebApi;
|
using GitHub.DistributedTask.WebApi;
|
||||||
using GitHub.Runner.Common.Util;
|
|
||||||
using GitHub.Runner.Sdk;
|
using GitHub.Runner.Sdk;
|
||||||
using GitHub.Services.Common;
|
using GitHub.Services.Common;
|
||||||
using Sdk.RSWebApi.Contracts;
|
using Sdk.RSWebApi.Contracts;
|
||||||
@@ -19,7 +18,6 @@ namespace GitHub.Runner.Common
|
|||||||
Task ConnectAsync(Uri serverUrl, VssCredentials credentials);
|
Task ConnectAsync(Uri serverUrl, VssCredentials credentials);
|
||||||
|
|
||||||
Task<TaskAgentMessage> GetRunnerMessageAsync(CancellationToken token, TaskAgentStatus status, string version);
|
Task<TaskAgentMessage> GetRunnerMessageAsync(CancellationToken token, TaskAgentStatus status, string version);
|
||||||
Task<bool> DeleteRunnerMessageAsync(string messageID, CancellationToken token);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed class BrokerServer : RunnerService, IBrokerServer
|
public sealed class BrokerServer : RunnerService, IBrokerServer
|
||||||
@@ -50,20 +48,9 @@ namespace GitHub.Runner.Common
|
|||||||
{
|
{
|
||||||
CheckConnection();
|
CheckConnection();
|
||||||
var jobMessage = RetryRequest<TaskAgentMessage>(
|
var jobMessage = RetryRequest<TaskAgentMessage>(
|
||||||
async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, cancellationToken), cancellationToken
|
async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, cancellationToken), cancellationToken);
|
||||||
);
|
|
||||||
|
|
||||||
return jobMessage;
|
return jobMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> DeleteRunnerMessageAsync(string messageID, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
CheckConnection();
|
|
||||||
|
|
||||||
return RetryRequest(
|
|
||||||
async () => await _brokerHttpClient.DeleteRunnerMessageAsync(messageID, cancellationToken),
|
|
||||||
cancellationToken
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,17 +170,7 @@ namespace GitHub.Runner.Listener
|
|||||||
|
|
||||||
public async Task DeleteMessageAsync(TaskAgentMessage message)
|
public async Task DeleteMessageAsync(TaskAgentMessage message)
|
||||||
{
|
{
|
||||||
Trace.Entering();
|
await Task.CompletedTask;
|
||||||
|
|
||||||
if (MessageUtil.IsRunServiceJob(message.MessageType))
|
|
||||||
{
|
|
||||||
var messageRef = StringUtil.ConvertFromJson<RunnerJobRequestRef>(message.Body);
|
|
||||||
|
|
||||||
using (var cs = new CancellationTokenSource(TimeSpan.FromSeconds(30)))
|
|
||||||
{
|
|
||||||
await _brokerServer.DeleteRunnerMessageAsync(messageRef.RunnerRequestId, cs.Token);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsGetNextMessageExceptionRetriable(Exception ex)
|
private bool IsGetNextMessageExceptionRetriable(Exception ex)
|
||||||
|
|||||||
@@ -392,7 +392,6 @@ namespace GitHub.Runner.Listener
|
|||||||
{
|
{
|
||||||
TaskAgentMessage message = null;
|
TaskAgentMessage message = null;
|
||||||
bool skipMessageDeletion = false;
|
bool skipMessageDeletion = false;
|
||||||
bool useBrokerDeletion = false;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Task<TaskAgentMessage> getNextMessage = _listener.GetNextMessageAsync(messageQueueLoopTokenSource.Token);
|
Task<TaskAgentMessage> getNextMessage = _listener.GetNextMessageAsync(messageQueueLoopTokenSource.Token);
|
||||||
@@ -601,16 +600,8 @@ namespace GitHub.Runner.Listener
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (useBrokerDeletion)
|
|
||||||
{
|
|
||||||
// await _listener.DeleteMessageAsync(brokerDeletionParamsMessageID, brokerDeletionParamsToken);
|
|
||||||
await _listener.DeleteMessageAsync(message);
|
await _listener.DeleteMessageAsync(message);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
await _listener.DeleteMessageAsync(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Trace.Error($"Catch exception during delete message from message queue. message id: {message.MessageId}");
|
Trace.Error($"Catch exception during delete message from message queue. message id: {message.MessageId}");
|
||||||
|
|||||||
@@ -88,28 +88,5 @@ namespace GitHub.Actions.RunService.WebApi
|
|||||||
|
|
||||||
throw new Exception($"Failed to get job message: {result.Error}");
|
throw new Exception($"Failed to get job message: {result.Error}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> DeleteRunnerMessageAsync(
|
|
||||||
string messageID,
|
|
||||||
CancellationToken cancellationToken = default
|
|
||||||
)
|
|
||||||
{
|
|
||||||
var requestUri = new Uri(Client.BaseAddress, "message");
|
|
||||||
|
|
||||||
List<KeyValuePair<string, string>> queryParams = new List<KeyValuePair<string, string>>();
|
|
||||||
|
|
||||||
if (messageID != null)
|
|
||||||
{
|
|
||||||
queryParams.Add("messageID", messageID);
|
|
||||||
}
|
|
||||||
|
|
||||||
var result = await SendAsync<TaskAgentMessage>(
|
|
||||||
new HttpMethod("DELETE"),
|
|
||||||
requestUri: requestUri,
|
|
||||||
queryParameters: queryParams,
|
|
||||||
cancellationToken: cancellationToken);
|
|
||||||
|
|
||||||
return (result.IsSuccess);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
||||||
|
|||||||
12
src/dev.sh
12
src/dev.sh
@@ -194,6 +194,10 @@ function layout ()
|
|||||||
|
|
||||||
function runtest ()
|
function runtest ()
|
||||||
{
|
{
|
||||||
|
if [[ ! -d "$LAYOUT_DIR" ]]; then
|
||||||
|
echo "$LAYOUT_DIR doesn't exist. Generating it now ..."
|
||||||
|
layout
|
||||||
|
fi
|
||||||
heading "Testing ..."
|
heading "Testing ..."
|
||||||
|
|
||||||
if [[ ("$CURRENT_PLATFORM" == "linux") || ("$CURRENT_PLATFORM" == "darwin") ]]; then
|
if [[ ("$CURRENT_PLATFORM" == "linux") || ("$CURRENT_PLATFORM" == "darwin") ]]; then
|
||||||
@@ -203,6 +207,13 @@ function runtest ()
|
|||||||
dotnet msbuild -t:test -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" ./dir.proj || failed "failed tests"
|
dotnet msbuild -t:test -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" ./dir.proj || failed "failed tests"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function coverage ()
|
||||||
|
{
|
||||||
|
heading "Coverage ..."
|
||||||
|
cd Test && dotnet test --collect:"XPlat Code Coverage;Format=json"
|
||||||
|
# reportgenerator -reports:"/workspaces/runner/src/Test/TestResults/ecf2bd75-83e9-489a-9339-d61293abf98b/coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html
|
||||||
|
}
|
||||||
|
|
||||||
function format()
|
function format()
|
||||||
{
|
{
|
||||||
heading "Formatting..."
|
heading "Formatting..."
|
||||||
@@ -369,6 +380,7 @@ case $DEV_CMD in
|
|||||||
"p") package;;
|
"p") package;;
|
||||||
"format") format;;
|
"format") format;;
|
||||||
"f") format;;
|
"f") format;;
|
||||||
|
"c") coverage;;
|
||||||
*) echo "Invalid cmd. Use build(b), test(t), layout(l), package(p), or format(f)";;
|
*) echo "Invalid cmd. Use build(b), test(t), layout(l), package(p), or format(f)";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user