public void MinorReleaseExample() { using (var fixture = new EmptyRepositoryFixture()) { fixture.Repository.MakeATaggedCommit("1.2.0"); // Branch to develop fixture.Repository.CreateBranch("develop").Checkout(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0.0-unstable"); // Open Pull Request fixture.Repository.CreateBranch("pull/2/merge").Checkout(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0-PullRequest.2+0"); fixture.Repository.MakeACommit(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0-PullRequest.2+1"); // Merge into develop fixture.Repository.Checkout("develop"); fixture.Repository.MergeNoFF("pull/2/merge", Constants.SignatureNow()); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0.2-unstable"); // Create release branch fixture.Repository.CreateBranch("release-1.3.0").Checkout(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0-beta.1+0"); // Make another commit on develop fixture.Repository.Checkout("develop"); fixture.Repository.MakeACommit(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0.3-unstable"); // Make a commit to release-1.3.0 fixture.Repository.Checkout("release-1.3.0"); fixture.Repository.MakeACommit(); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0-beta.1+1"); // Apply beta.0 tag fixture.Repository.ApplyTag("1.3.0-beta.1"); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0-beta.2+1"); // Merge release branch to master fixture.Repository.Checkout("master"); fixture.Repository.MergeNoFF("release-1.3.0", Constants.SignatureNow()); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.3.0"); fixture.Repository.ApplyTag("1.3.0"); // Verify develop version fixture.Repository.Checkout("develop"); fixture.Repository.MergeNoFF("release-1.3.0", Constants.SignatureNow()); fixture.ExecuteGitVersion().OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.4.0.2-unstable"); } }
public void WhenDevelopBranchedFromMaster_MinorIsIncreased() { using (var fixture = new EmptyRepositoryFixture()) { fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.CreateBranch("develop").Checkout(); var result = fixture.ExecuteGitVersion(); result.OutputVariables[VariableProvider.SemVer].ShouldBe("1.1.0.0-unstable"); } }
public void GivenARepositoryWithTagAndNoNextVersionTxtFileAndNoCommits_VersionShouldBeTag() { using (var fixture = new EmptyRepositoryFixture()) { const string TaggedVersion = "1.0.3"; fixture.Repository.MakeATaggedCommit(TaggedVersion); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.3+0"); } }
public void GivenARepositoryWithTagAndNoNextVersionTxtFile_VersionShouldBeTagWithBumpedPatch() { using (var fixture = new EmptyRepositoryFixture()) { const string TaggedVersion = "1.0.3"; fixture.Repository.MakeATaggedCommit(TaggedVersion); fixture.Repository.MakeCommits(5); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.4+5"); } }
public void GivenARepositoryWithTagAndANextVersionTxtFileAndNoCommits_VersionShouldBeTag() { using (var fixture = new EmptyRepositoryFixture()) { const string ExpectedNextVersion = "1.1.0"; const string TaggedVersion = "1.0.3"; fixture.Repository.MakeATaggedCommit(TaggedVersion); fixture.Repository.AddNextVersionTxtFile(ExpectedNextVersion); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.3+0"); } }
public void GivenARepositoryWithNoTagsAndANextVersionTxtFile_VersionShouldMatchVersionTxtFile() { using (var fixture = new EmptyRepositoryFixture()) { const string ExpectedNextVersion = "1.0.0"; fixture.Repository.MakeACommit(); fixture.Repository.MakeACommit(); fixture.Repository.MakeACommit(); fixture.Repository.AddNextVersionTxtFile(ExpectedNextVersion); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.0+2"); } }
public void GivenARepositoryWithCommitsButNoTags_VersionShouldBe_0_1() { using (var fixture = new EmptyRepositoryFixture()) { // Given fixture.Repository.MakeACommit(); fixture.Repository.MakeACommit(); fixture.Repository.MakeACommit(); // When var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("0.1.0+2"); } }
public void GivenARepositoryWithTagAndOldNextVersionTxtFile_VersionShouldBeTagWithBumpedPatch() { using (var fixture = new EmptyRepositoryFixture()) { const string NextVersionTxt = "1.0.0"; const string TaggedVersion = "1.1.0"; fixture.Repository.MakeATaggedCommit(TaggedVersion); fixture.Repository.MakeCommits(5); fixture.Repository.AddNextVersionTxtFile(NextVersionTxt); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.1.1+5"); } }
public void CanTakeVersionFromReleaseBranch() { using (var fixture = new EmptyRepositoryFixture()) { const string TaggedVersion = "1.0.3"; fixture.Repository.MakeATaggedCommit(TaggedVersion); fixture.Repository.MakeCommits(5); fixture.Repository.CreateBranch("release-2.0.0"); fixture.Repository.Checkout("release-2.0.0"); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("2.0.0-beta.1+5"); } }
public void WhenReleaseBranchIsMergedIntoMasterVersionIsTakenWithIt() { using (var fixture = new EmptyRepositoryFixture()) { const string TaggedVersion = "1.0.3"; fixture.Repository.MakeATaggedCommit(TaggedVersion); fixture.Repository.MakeCommits(1); fixture.Repository.CreateBranch("release-2.0.0"); fixture.Repository.Checkout("release-2.0.0"); fixture.Repository.MakeCommits(4); fixture.Repository.Checkout("master"); fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow()); var result = fixture.ExecuteGitVersion(); result.ExitCode.ShouldBe(0); result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("2.0.0+6"); } }