Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
        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");
            }
        }
Exemplo n.º 5
0
        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");
            }
        }
Exemplo n.º 6
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");
            }
        }
Exemplo n.º 7
0
        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");
            }
        }
Exemplo n.º 8
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");
            }
        }
Exemplo n.º 9
0
        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");
            }
        }
Exemplo n.º 10
0
        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");
            }
        }
Exemplo n.º 11
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");
            }
        }
Exemplo n.º 12
0
        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 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");
            }
        }
Exemplo n.º 14
0
        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");
            }
        }
Exemplo n.º 16
0
        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");
            }
        }