mirror of
https://github.com/actions/runner.git
synced 2025-12-13 00:36:29 +00:00
test
This commit is contained in:
11
.vscode/launch.json
vendored
11
.vscode/launch.json
vendored
@@ -12,7 +12,10 @@
|
|||||||
],
|
],
|
||||||
"cwd": "${workspaceFolder}/src",
|
"cwd": "${workspaceFolder}/src",
|
||||||
"console": "integratedTerminal",
|
"console": "integratedTerminal",
|
||||||
"requireExactSource": false
|
"requireExactSource": false,
|
||||||
|
"env": {
|
||||||
|
"USE_BROKER_FLOW": "1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Run",
|
"name": "Run",
|
||||||
@@ -24,7 +27,10 @@
|
|||||||
],
|
],
|
||||||
"cwd": "${workspaceFolder}/src",
|
"cwd": "${workspaceFolder}/src",
|
||||||
"console": "integratedTerminal",
|
"console": "integratedTerminal",
|
||||||
"requireExactSource": false
|
"requireExactSource": false,
|
||||||
|
"env": {
|
||||||
|
"USE_BROKER_FLOW": "1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Configure",
|
"name": "Configure",
|
||||||
@@ -55,4 +61,3 @@
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -466,12 +466,20 @@ namespace GitHub.Runner.Listener
|
|||||||
Trace.Info("Refresh message received, skip autoupdate since a previous autoupdate is already running.");
|
Trace.Info("Refresh message received, skip autoupdate since a previous autoupdate is already running.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (string.Equals(message.MessageType, "BrokerAgentRefresh", StringComparison.OrdinalIgnoreCase))
|
else if (string.Equals(message.MessageType, RunnerRefreshMessage.MessageType, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
if (autoUpdateInProgress == false)
|
if (autoUpdateInProgress == false)
|
||||||
{
|
{
|
||||||
autoUpdateInProgress = true;
|
autoUpdateInProgress = true;
|
||||||
var runnerUpdateMessage = JsonUtility.FromString<AgentRefreshMessage>(message.Body);
|
var runnerUpdateMessage = JsonUtility.FromString<RunnerRefreshMessage>(message.Body);
|
||||||
|
|
||||||
|
//////////////////////////////
|
||||||
|
_term.WriteLine($"TargetVersion: {runnerUpdateMessage.TargetVersion}");
|
||||||
|
_term.WriteLine($"AgentId: {runnerUpdateMessage.AgentId}");
|
||||||
|
_term.WriteLine($"Timeout: {runnerUpdateMessage.Timeout.ToString()}");
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
var agentRefreshMessage = new AgentRefreshMessage(runnerUpdateMessage.AgentId, runnerUpdateMessage.TargetVersion, TimeSpan.FromMilliseconds(runnerUpdateMessage.Timeout));
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
// Can mock the update for testing
|
// Can mock the update for testing
|
||||||
if (StringUtil.ConvertToBoolean(Environment.GetEnvironmentVariable("GITHUB_ACTIONS_RUNNER_IS_MOCK_UPDATE")))
|
if (StringUtil.ConvertToBoolean(Environment.GetEnvironmentVariable("GITHUB_ACTIONS_RUNNER_IS_MOCK_UPDATE")))
|
||||||
@@ -488,17 +496,13 @@ namespace GitHub.Runner.Listener
|
|||||||
var mockTargetVersion = mockUpdateMessages[BuildConstants.RunnerPackage.Version].TargetVersion;
|
var mockTargetVersion = mockUpdateMessages[BuildConstants.RunnerPackage.Version].TargetVersion;
|
||||||
_term.WriteLine($"Mocking update, using version {mockTargetVersion} instead of {runnerUpdateMessage.TargetVersion}");
|
_term.WriteLine($"Mocking update, using version {mockTargetVersion} instead of {runnerUpdateMessage.TargetVersion}");
|
||||||
Trace.Info($"Mocking update, using version {mockTargetVersion} instead of {runnerUpdateMessage.TargetVersion}");
|
Trace.Info($"Mocking update, using version {mockTargetVersion} instead of {runnerUpdateMessage.TargetVersion}");
|
||||||
runnerUpdateMessage = new AgentRefreshMessage(runnerUpdateMessage.AgentId, mockTargetVersion, runnerUpdateMessage.Timeout);
|
agentRefreshMessage = new AgentRefreshMessage(agentRefreshMessage.AgentId, mockTargetVersion, agentRefreshMessage.Timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// var selfUpdater = HostContext.GetService<ISelfUpdater>();
|
var selfUpdater = HostContext.GetService<ISelfUpdater>();
|
||||||
// selfUpdateTask = selfUpdater.SelfUpdate(runnerUpdateMessage, jobDispatcher, false, HostContext.RunnerShutdownToken);
|
selfUpdateTask = selfUpdater.SelfUpdate(agentRefreshMessage, jobDispatcher, false, HostContext.RunnerShutdownToken);
|
||||||
_term.WriteLine("BrokerAgentRefresh message received, kick-off selfupdate background process.");
|
|
||||||
_term.WriteLine($"TargetVersion: {runnerUpdateMessage.TargetVersion}");
|
|
||||||
_term.WriteLine($"AgentId: {runnerUpdateMessage.AgentId}");
|
|
||||||
_term.WriteLine($"Timeout: {runnerUpdateMessage.Timeout.ToString()}");
|
|
||||||
Trace.Info("Refresh message received, kick-off selfupdate background process.");
|
Trace.Info("Refresh message received, kick-off selfupdate background process.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -73,13 +73,12 @@ namespace GitHub.Runner.Listener
|
|||||||
// we will just go with the full package.
|
// we will just go with the full package.
|
||||||
var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token);
|
var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token);
|
||||||
_cloneAndCalculateContentHashTask = CloneAndCalculateAssetsHash(_dotnetRuntimeCloneDirectory, _externalsCloneDirectory, linkedTokenSource.Token);
|
_cloneAndCalculateContentHashTask = CloneAndCalculateAssetsHash(_dotnetRuntimeCloneDirectory, _externalsCloneDirectory, linkedTokenSource.Token);
|
||||||
|
_terminal.WriteLine("Self-update");
|
||||||
if (!await UpdateNeeded(updateMessage.TargetVersion, token))
|
if (!await UpdateNeeded(updateMessage.TargetVersion, token))
|
||||||
{
|
{
|
||||||
Trace.Info($"Can't find available update package.");
|
Trace.Info($"Can't find available update package.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Trace.Info($"An update is available.");
|
Trace.Info($"An update is available.");
|
||||||
_updateTrace.Enqueue($"RunnerPlatform: {_targetPackage.Platform}");
|
_updateTrace.Enqueue($"RunnerPlatform: {_targetPackage.Platform}");
|
||||||
|
|
||||||
@@ -171,9 +170,12 @@ namespace GitHub.Runner.Listener
|
|||||||
// old server won't send target version as part of update message.
|
// old server won't send target version as part of update message.
|
||||||
if (string.IsNullOrEmpty(targetVersion))
|
if (string.IsNullOrEmpty(targetVersion))
|
||||||
{
|
{
|
||||||
|
_terminal.WriteLine("Debug 1");
|
||||||
var packages = await _runnerServer.GetPackagesAsync(_packageType, _platform, 1, true, token);
|
var packages = await _runnerServer.GetPackagesAsync(_packageType, _platform, 1, true, token);
|
||||||
|
_terminal.WriteLine("Debug 2");
|
||||||
if (packages == null || packages.Count == 0)
|
if (packages == null || packages.Count == 0)
|
||||||
{
|
{
|
||||||
|
_terminal.WriteLine("Debug 3");
|
||||||
Trace.Info($"There is no package for {_packageType} and {_platform}.");
|
Trace.Info($"There is no package for {_packageType} and {_platform}.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -182,14 +184,19 @@ namespace GitHub.Runner.Listener
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_targetPackage = await _runnerServer.GetPackageAsync(_packageType, _platform, targetVersion, true, token);
|
_terminal.WriteLine("Debug 4");
|
||||||
|
_targetPackage = new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName,
|
||||||
|
Version = new PackageVersion(targetVersion),
|
||||||
|
DownloadUrl = $"https://github.com/actions/runner/releases/download/v{targetVersion}/actions-runner-{BuildConstants.RunnerPackage.PackageName}-{targetVersion}.tar.gz" };
|
||||||
|
_terminal.WriteLine("Debug 5");
|
||||||
if (_targetPackage == null)
|
if (_targetPackage == null)
|
||||||
{
|
{
|
||||||
|
_terminal.WriteLine("Debug 6");
|
||||||
Trace.Info($"There is no package for {_packageType} and {_platform} with version {targetVersion}.");
|
Trace.Info($"There is no package for {_packageType} and {_platform} with version {targetVersion}.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_terminal.WriteLine("Debug 7");
|
||||||
Trace.Info($"Version '{_targetPackage.Version}' of '{_targetPackage.Type}' package available in server.");
|
Trace.Info($"Version '{_targetPackage.Version}' of '{_targetPackage.Type}' package available in server.");
|
||||||
PackageVersion serverVersion = new PackageVersion(_targetPackage.Version);
|
PackageVersion serverVersion = new PackageVersion(_targetPackage.Version);
|
||||||
Trace.Info($"Current running runner version is {BuildConstants.RunnerPackage.Version}");
|
Trace.Info($"Current running runner version is {BuildConstants.RunnerPackage.Version}");
|
||||||
|
|||||||
49
src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs
Normal file
49
src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
|
||||||
|
namespace GitHub.DistributedTask.WebApi
|
||||||
|
{
|
||||||
|
[DataContract]
|
||||||
|
public sealed class RunnerRefreshMessage
|
||||||
|
{
|
||||||
|
public static readonly String MessageType = "RunnerRefresh";
|
||||||
|
|
||||||
|
[JsonConstructor]
|
||||||
|
internal RunnerRefreshMessage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public RunnerRefreshMessage(
|
||||||
|
Int32 agentId,
|
||||||
|
String targetVersion,
|
||||||
|
int? timeout = null)
|
||||||
|
{
|
||||||
|
this.AgentId = agentId;
|
||||||
|
this.Timeout = timeout ?? TimeSpan.FromMinutes(60).Milliseconds;
|
||||||
|
this.TargetVersion = targetVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DataMember]
|
||||||
|
public Int32 AgentId
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DataMember]
|
||||||
|
public int Timeout
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DataMember]
|
||||||
|
public String TargetVersion
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user