public void PullRequestsAreTaggedWithPreReleaseSemverTag() { _lastTaggedReleaseFinder.GetVersion().Returns(new VersionTaggedCommit(null, null)); _buildServer.IsBuildingAPullRequest(Arg.Any <IRepository>()).Returns(true); _buildServer.CurrentPullRequestNo(Arg.Any <Branch>()).Returns(3); _gitHelper.NumberOfCommitsOnBranchSinceCommit(Arg.Any <Branch>(), Arg.Any <Commit>()).Returns(5); var semver = new SemanticVersion(0, 1, 2); _nextSemver.NextVersion().Returns(semver); var buildNumber = _sut.GetBuildNumber(); Assert.Equal("0.1.2-PullRequest3+005", buildNumber.ToString()); }
public SemanticVersion GetBuildNumber() { var commitsSinceLastRelease = _gitHelper.NumberOfCommitsOnBranchSinceCommit(_gitRepo.Head, _lastTaggedReleaseFinder.GetVersion().Commit); SemanticVersion semanticVersion = _nextSemverCalculator.NextVersion(); if (_buildServer.IsBuildingAPullRequest(_gitRepo)) { _gitHelper.EnsurePullBranchShareACommonAncestorWithMaster(_gitRepo, _gitRepo.Head); semanticVersion = semanticVersion.WithSuffix("PullRequest" + _buildServer.CurrentPullRequestNo(_gitRepo.Head)); } var withBuildMetaData = semanticVersion.WithBuildMetaData(commitsSinceLastRelease); Console.WriteLine("Version number is '{0}'", withBuildMetaData); return(withBuildMetaData); }