예제 #1
0
        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);
        }
예제 #2
0
 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;
                }
            }
        }