From 72559572f64f40554d43cfa04e4128725dc2274b Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Fri, 9 Feb 2024 15:19:52 -0500 Subject: [PATCH] Pass RunnerOS during job acquire. (#3140) --- src/Runner.Common/RunServer.cs | 3 ++- src/Sdk/RSWebApi/Contracts/AcquireJobRequest.cs | 3 +++ src/Sdk/RSWebApi/RunServiceHttpClient.cs | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Runner.Common/RunServer.cs b/src/Runner.Common/RunServer.cs index fbd9ff96abd..c042796b124 100644 --- a/src/Runner.Common/RunServer.cs +++ b/src/Runner.Common/RunServer.cs @@ -5,6 +5,7 @@ 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; @@ -60,7 +61,7 @@ public Task GetJobMessageAsync(string id, CancellationTo { CheckConnection(); return RetryRequest( - async () => await _runServiceHttpClient.GetJobMessageAsync(requestUri, id, cancellationToken), cancellationToken, + async () => await _runServiceHttpClient.GetJobMessageAsync(requestUri, id, VarUtil.OS, cancellationToken), cancellationToken, shouldRetry: ex => ex is not TaskOrchestrationJobAlreadyAcquiredException); } diff --git a/src/Sdk/RSWebApi/Contracts/AcquireJobRequest.cs b/src/Sdk/RSWebApi/Contracts/AcquireJobRequest.cs index c010f820879..c075d318e07 100644 --- a/src/Sdk/RSWebApi/Contracts/AcquireJobRequest.cs +++ b/src/Sdk/RSWebApi/Contracts/AcquireJobRequest.cs @@ -7,5 +7,8 @@ public class AcquireJobRequest { [DataMember(Name = "jobMessageId", EmitDefaultValue = false)] public string JobMessageId { get; set; } + + [DataMember(Name = "runnerOS", EmitDefaultValue = false)] + public string RunnerOS { get; set; } } } diff --git a/src/Sdk/RSWebApi/RunServiceHttpClient.cs b/src/Sdk/RSWebApi/RunServiceHttpClient.cs index bafcee5aabd..4d2b74f8c4c 100644 --- a/src/Sdk/RSWebApi/RunServiceHttpClient.cs +++ b/src/Sdk/RSWebApi/RunServiceHttpClient.cs @@ -59,12 +59,14 @@ public RunServiceHttpClient( public async Task GetJobMessageAsync( Uri requestUri, string messageId, + string runnerOS, CancellationToken cancellationToken = default) { HttpMethod httpMethod = new HttpMethod("POST"); var payload = new AcquireJobRequest { JobMessageId = messageId, + RunnerOS = runnerOS }; requestUri = new Uri(requestUri, "acquirejob");