private async Task <bool> UpdateNeeded(string targetVersion, CancellationToken token) { // when talk to old version tfs server, always prefer latest package. // old server won't send target version as part of update message. if (string.IsNullOrEmpty(targetVersion)) { var packages = await _agentServer.GetPackagesAsync(_packageType, _platform, 1, token); if (packages == null || packages.Count == 0) { Trace.Info($"There is no package for {_packageType} and {_platform}."); return(false); } _targetPackage = packages.FirstOrDefault(); } else { _targetPackage = await _agentServer.GetPackageAsync(_packageType, _platform, targetVersion, token); if (_targetPackage == null) { Trace.Info($"There is no package for {_packageType} and {_platform} with version {targetVersion}."); return(false); } } Trace.Info($"Version '{_targetPackage.Version}' of '{_targetPackage.Type}' package available in server."); PackageVersion serverVersion = new PackageVersion(_targetPackage.Version); Trace.Info($"Current running agent version is {BuildConstants.AgentPackage.Version}"); PackageVersion agentVersion = new PackageVersion(BuildConstants.AgentPackage.Version); if (serverVersion.CompareTo(agentVersion) > 0) { return(true); } if (AgentKnobs.DisableAgentDowngrade.GetValue(_knobContext).AsBoolean()) { Trace.Info("Agent downgrade disabled, skipping update"); return(false); } // Always return true for newer agent versions unless they're exactly equal to enable auto rollback (this feature was introduced after 2.165.0) if (serverVersion.CompareTo(agentVersion) != 0) { _terminal.WriteLine(StringUtil.Loc("AgentDowngrade")); return(true); } return(false); }
private async Task <bool> UpdateNeeded(string targetVersion, CancellationToken token) { // when talk to old version server, always prefer latest package. // old server won't send target version as part of update message. if (string.IsNullOrEmpty(targetVersion)) { var packages = await _runnerServer.GetPackagesAsync(_packageType, _platform, 1, token); if (packages == null || packages.Count == 0) { Trace.Info($"There is no package for {_packageType} and {_platform}."); return(false); } _targetPackage = packages.FirstOrDefault(); } else { _targetPackage = await _runnerServer.GetPackageAsync(_packageType, _platform, targetVersion, token); if (_targetPackage == null) { Trace.Info($"There is no package for {_packageType} and {_platform} with version {targetVersion}."); return(false); } } 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}"); PackageVersion runnerVersion = new PackageVersion(BuildConstants.RunnerPackage.Version); return(serverVersion.CompareTo(runnerVersion) > 0); }
public int CompareTo(object other) { if (!(other is ProjectReference)) { return(0); } var b = (ProjectReference)other; var nameComparison = string.Compare(Name, b.Name, StringComparison.InvariantCultureIgnoreCase); if (nameComparison != 0) { return(nameComparison); } var versionComparison = Version.CompareTo(b.Version); if (versionComparison != 0) { return(versionComparison); } if (IsPackageReference) { var packageVersionComparison = PackageVersion.CompareTo(b.PackageVersion); if (packageVersionComparison != 0) { return(packageVersionComparison); } } return(string.Compare(FullName, b.FullName, StringComparison.Ordinal)); }
public void CompareToEqualTest() { PackageVersion v1, v2; int result; // // Prepare the test. // v1 = new PackageVersion("1.3.7"); v2 = new PackageVersion(1, 3, 7); // // Run the test. // result = v1.CompareTo(v2); // // Verify the test. // Assert.AreEqual(v1.Major, v2.Major); Assert.AreEqual(v1.Minor, v2.Minor); Assert.AreEqual(v1.Revision, v2.Revision); Assert.AreEqual(0, result); }
public void IfTwoClassesWithPackage2IsBeforePackage1GiveCompareToOf1() { var package1 = new PackageVersion(); var package2 = new PackageVersion(); package1.Name = "test2"; package2.Name = "test1"; Assert.AreEqual(1, package1.CompareTo(package2)); }
public void IfTwoClassesWithTheSameNameGiveCompareToOf0() { var package1 = new PackageVersion(); var package2 = new PackageVersion(); package1.Name = "test"; package2.Name = "test"; Assert.AreEqual(0, package1.CompareTo(package2)); }
private async Task <bool> UpdateNeeded(CancellationToken token) { var agentServer = HostContext.GetService <IAgentServer>(); var packages = await agentServer.GetPackagesAsync(_packageType, _platform, 1, token); if (packages == null || packages.Count == 0) { Trace.Info($"There is no package for {_packageType} and {_platform}."); return(false); } _latestPackage = packages.FirstOrDefault(); Trace.Info($"Latest version of '{_latestPackage.Type}' package availiable in server is {_latestPackage.Version}"); PackageVersion serverVersion = new PackageVersion(_latestPackage.Version); Trace.Info($"Current running agent version is {Constants.Agent.Version}"); PackageVersion agentVersion = new PackageVersion(Constants.Agent.Version); return(serverVersion.CompareTo(agentVersion) > 0); }
public void CompareToGreaterThanRevisionTest() { PackageVersion v1, v2; int result; // // Prepare the test. // v1 = new PackageVersion("1.3.7"); v2 = new PackageVersion("1.3.5"); // // Run the test. // result = v1.CompareTo(v2); // // Verify the test. // Assert.AreEqual(1, result); }
public void CompareToLessThanMinorTest() { PackageVersion v1, v2; int result; // // Prepare the test. // v1 = new PackageVersion("1.3.7"); v2 = new PackageVersion("1.7.1"); // // Run the test. // result = v1.CompareTo(v2); // // Verify the test. // Assert.AreEqual(-1, result); }
public void CompareToLessThanMigratorStepTest() { MigratorVersionStep v2; PackageVersion v1; int result; // // Prepare the test. // v1 = new PackageVersion("1.3.7"); v2 = new MigratorVersionStep(1, 3, 7, 6); // // Run the test. // result = v1.CompareTo(v2); // // Verify the test. // Assert.AreEqual(-1, result); }
public int CompareTo(VersionRange other) { return(minimum.CompareTo(other.minimum)); }
public int CompareTo(IVersion obj) { return(PackageVersion.CompareTo(obj.PackageVersion)); }
private async Task<bool> UpdateNeeded(CancellationToken token) { var agentServer = HostContext.GetService<IAgentServer>(); var packages = await agentServer.GetPackagesAsync(_packageType, _platform, 1, token); if (packages == null || packages.Count == 0) { Trace.Info($"There is no package for {_packageType} and {_platform}."); return false; } _latestPackage = packages.FirstOrDefault(); Trace.Info($"Latest version of '{_latestPackage.Type}' package availiable in server is {_latestPackage.Version}"); PackageVersion serverVersion = new PackageVersion(_latestPackage.Version); Trace.Info($"Current running agent version is {Constants.Agent.Version}"); PackageVersion agentVersion = new PackageVersion(Constants.Agent.Version); return serverVersion.CompareTo(agentVersion) > 0; }