mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
test
This commit is contained in:
13
.vscode/launch.json
vendored
13
.vscode/launch.json
vendored
@@ -12,7 +12,10 @@
|
||||
],
|
||||
"cwd": "${workspaceFolder}/src",
|
||||
"console": "integratedTerminal",
|
||||
"requireExactSource": false
|
||||
"requireExactSource": false,
|
||||
"env": {
|
||||
"USE_BROKER_FLOW": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Run",
|
||||
@@ -24,7 +27,10 @@
|
||||
],
|
||||
"cwd": "${workspaceFolder}/src",
|
||||
"console": "integratedTerminal",
|
||||
"requireExactSource": false
|
||||
"requireExactSource": false,
|
||||
"env": {
|
||||
"USE_BROKER_FLOW": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Configure",
|
||||
@@ -54,5 +60,4 @@
|
||||
"requireExactSource": false
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
}
|
||||
@@ -466,12 +466,20 @@ namespace GitHub.Runner.Listener
|
||||
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)
|
||||
{
|
||||
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
|
||||
// Can mock the update for testing
|
||||
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;
|
||||
_term.WriteLine($"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
|
||||
// var selfUpdater = HostContext.GetService<ISelfUpdater>();
|
||||
// selfUpdateTask = selfUpdater.SelfUpdate(runnerUpdateMessage, 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()}");
|
||||
var selfUpdater = HostContext.GetService<ISelfUpdater>();
|
||||
selfUpdateTask = selfUpdater.SelfUpdate(agentRefreshMessage, jobDispatcher, false, HostContext.RunnerShutdownToken);
|
||||
Trace.Info("Refresh message received, kick-off selfupdate background process.");
|
||||
}
|
||||
else
|
||||
|
||||
@@ -73,13 +73,12 @@ namespace GitHub.Runner.Listener
|
||||
// we will just go with the full package.
|
||||
var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token);
|
||||
_cloneAndCalculateContentHashTask = CloneAndCalculateAssetsHash(_dotnetRuntimeCloneDirectory, _externalsCloneDirectory, linkedTokenSource.Token);
|
||||
|
||||
_terminal.WriteLine("Self-update");
|
||||
if (!await UpdateNeeded(updateMessage.TargetVersion, token))
|
||||
{
|
||||
Trace.Info($"Can't find available update package.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Trace.Info($"An update is available.");
|
||||
_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.
|
||||
if (string.IsNullOrEmpty(targetVersion))
|
||||
{
|
||||
_terminal.WriteLine("Debug 1");
|
||||
var packages = await _runnerServer.GetPackagesAsync(_packageType, _platform, 1, true, token);
|
||||
_terminal.WriteLine("Debug 2");
|
||||
if (packages == null || packages.Count == 0)
|
||||
{
|
||||
_terminal.WriteLine("Debug 3");
|
||||
Trace.Info($"There is no package for {_packageType} and {_platform}.");
|
||||
return false;
|
||||
}
|
||||
@@ -182,14 +184,19 @@ namespace GitHub.Runner.Listener
|
||||
}
|
||||
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)
|
||||
{
|
||||
_terminal.WriteLine("Debug 6");
|
||||
Trace.Info($"There is no package for {_packageType} and {_platform} with version {targetVersion}.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
_terminal.WriteLine("Debug 7");
|
||||
Trace.Info($"Version '{_targetPackage.Version}' of '{_targetPackage.Type}' package available in server.");
|
||||
PackageVersion serverVersion = new PackageVersion(_targetPackage.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