public SemanticVersion NextVersion() { var versionZero = new SemanticVersion(); var lastRelease = lastTaggedReleaseFinder.GetVersion().SemVer; var fileVersion = nextVersionTxtFileFinder.GetNextVersion(); var mergedBranchVersion = mergedBranchesWithVersionFinder.GetVersion(); var otherBranchVersion = unknownBranchFinder.FindVersion(context); if (otherBranchVersion != null && otherBranchVersion.PreReleaseTag != null && otherBranchVersion.PreReleaseTag.Name == "release") { otherBranchVersion.PreReleaseTag.Name = "beta"; } var maxCalculated = new[] { fileVersion, otherBranchVersion, mergedBranchVersion }.Max(); if (lastRelease == versionZero && maxCalculated == versionZero) { return(new SemanticVersion { Minor = 1 }); } if (maxCalculated <= lastRelease) { return(new SemanticVersion { Major = lastRelease.Major, Minor = lastRelease.Minor, Patch = lastRelease.Patch + 1 }); } return(maxCalculated); }
public static void OverrideVersionManuallyIfNeeded(this SemanticVersion version, IRepository repository) { var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repository.GetRepositoryDirectory()); var manualNextVersion = nextVersionTxtFileFinder.GetNextVersion(); if (!manualNextVersion.IsEmpty()) { if (manualNextVersion > version) { version.Major = manualNextVersion.Major; version.Minor = manualNextVersion.Minor; version.Patch = manualNextVersion.Patch; } } }
public static void OverrideVersionManuallyIfNeeded(this SemanticVersion version, IRepository repository) { var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repository.GetRepositoryDirectory()); var manualNextVersion = nextVersionTxtFileFinder.GetNextVersion(); if (!manualNextVersion.IsEmpty()) { if (manualNextVersion > version) { version.Major = manualNextVersion.Major; version.Minor = manualNextVersion.Minor; version.Patch = manualNextVersion.Patch; } } }