Only keep 1 older version runner around after self-upgrade. (#3122)

This commit is contained in:
Tingluo Huang
2024-01-31 10:03:49 -05:00
committed by GitHub
parent 894c50073a
commit b647b890c5

View File

@@ -34,6 +34,7 @@ namespace GitHub.Runner.Listener
private IRunnerServer _runnerServer; private IRunnerServer _runnerServer;
private int _poolId; private int _poolId;
private ulong _agentId; private ulong _agentId;
private const int _numberOfOldVersionsToKeep = 1;
private readonly ConcurrentQueue<string> _updateTrace = new(); private readonly ConcurrentQueue<string> _updateTrace = new();
public bool Busy { get; private set; } public bool Busy { get; private set; }
@@ -509,9 +510,9 @@ namespace GitHub.Runner.Listener
// delete old bin.2.99.0 folder, only leave the current version and the latest download version // delete old bin.2.99.0 folder, only leave the current version and the latest download version
var allBinDirs = Directory.GetDirectories(HostContext.GetDirectory(WellKnownDirectory.Root), "bin.*"); var allBinDirs = Directory.GetDirectories(HostContext.GetDirectory(WellKnownDirectory.Root), "bin.*");
if (allBinDirs.Length > 2) if (allBinDirs.Length > _numberOfOldVersionsToKeep)
{ {
// there are more than 2 bin.version folder. // there are more than one bin.version folder.
// delete older bin.version folders. // delete older bin.version folders.
foreach (var oldBinDir in allBinDirs) foreach (var oldBinDir in allBinDirs)
{ {
@@ -538,9 +539,9 @@ namespace GitHub.Runner.Listener
// delete old externals.2.99.0 folder, only leave the current version and the latest download version // delete old externals.2.99.0 folder, only leave the current version and the latest download version
var allExternalsDirs = Directory.GetDirectories(HostContext.GetDirectory(WellKnownDirectory.Root), "externals.*"); var allExternalsDirs = Directory.GetDirectories(HostContext.GetDirectory(WellKnownDirectory.Root), "externals.*");
if (allExternalsDirs.Length > 2) if (allExternalsDirs.Length > _numberOfOldVersionsToKeep)
{ {
// there are more than 2 externals.version folder. // there are more than one externals.version folder.
// delete older externals.version folders. // delete older externals.version folders.
foreach (var oldExternalDir in allExternalsDirs) foreach (var oldExternalDir in allExternalsDirs)
{ {