Compare commits

..

4 Commits

Author SHA1 Message Date
JoannaaKL
8547726905 WIP: generate coverage report
Todo: 1. Use newest hash 2. Use index.html stats
2023-05-19 11:34:44 +00:00
JoannaaKL
7287a14f9f Generate coverage report as json 2023-05-19 11:26:45 +00:00
JoannaaKL
cdd8a8e694 Generate layout if it doesnt exist 2023-05-19 11:10:52 +00:00
JoannaaKL
1fc63f4aaa Add separate step to generate coverage reports 2023-05-19 10:58:18 +00:00
6 changed files with 19 additions and 58 deletions

View File

@@ -5,7 +5,6 @@ using System.Threading.Tasks;
using GitHub.Actions.RunService.WebApi;
using GitHub.DistributedTask.Pipelines;
using GitHub.DistributedTask.WebApi;
using GitHub.Runner.Common.Util;
using GitHub.Runner.Sdk;
using GitHub.Services.Common;
using Sdk.RSWebApi.Contracts;
@@ -19,7 +18,6 @@ namespace GitHub.Runner.Common
Task ConnectAsync(Uri serverUrl, VssCredentials credentials);
Task<TaskAgentMessage> GetRunnerMessageAsync(CancellationToken token, TaskAgentStatus status, string version);
Task<bool> DeleteRunnerMessageAsync(string messageID, CancellationToken token);
}
public sealed class BrokerServer : RunnerService, IBrokerServer
@@ -50,20 +48,9 @@ namespace GitHub.Runner.Common
{
CheckConnection();
var jobMessage = RetryRequest<TaskAgentMessage>(
async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, cancellationToken), cancellationToken
);
async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, cancellationToken), cancellationToken);
return jobMessage;
}
public Task<bool> DeleteRunnerMessageAsync(string messageID, CancellationToken cancellationToken)
{
CheckConnection();
return RetryRequest(
async () => await _brokerHttpClient.DeleteRunnerMessageAsync(messageID, cancellationToken),
cancellationToken
);
}
}
}

View File

@@ -170,17 +170,7 @@ namespace GitHub.Runner.Listener
public async Task DeleteMessageAsync(TaskAgentMessage message)
{
Trace.Entering();
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);
}
}
await Task.CompletedTask;
}
private bool IsGetNextMessageExceptionRetriable(Exception ex)

View File

@@ -392,7 +392,6 @@ namespace GitHub.Runner.Listener
{
TaskAgentMessage message = null;
bool skipMessageDeletion = false;
bool useBrokerDeletion = false;
try
{
Task<TaskAgentMessage> getNextMessage = _listener.GetNextMessageAsync(messageQueueLoopTokenSource.Token);
@@ -601,15 +600,7 @@ namespace GitHub.Runner.Listener
{
try
{
if (useBrokerDeletion)
{
// await _listener.DeleteMessageAsync(brokerDeletionParamsMessageID, brokerDeletionParamsToken);
await _listener.DeleteMessageAsync(message);
}
else
{
await _listener.DeleteMessageAsync(message);
}
await _listener.DeleteMessageAsync(message);
}
catch (Exception ex)
{

View File

@@ -88,28 +88,5 @@ namespace GitHub.Actions.RunService.WebApi
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);
}
}
}

View File

@@ -15,6 +15,10 @@
</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="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />

View File

@@ -194,6 +194,10 @@ function layout ()
function runtest ()
{
if [[ ! -d "$LAYOUT_DIR" ]]; then
echo "$LAYOUT_DIR doesn't exist. Generating it now ..."
layout
fi
heading "Testing ..."
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"
}
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()
{
heading "Formatting..."
@@ -369,6 +380,7 @@ case $DEV_CMD in
"p") package;;
"format") format;;
"f") format;;
"c") coverage;;
*) echo "Invalid cmd. Use build(b), test(t), layout(l), package(p), or format(f)";;
esac