コード例 #1
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode           = versioningMode;
     GitTagPrefix             = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget          = trackMergeTarget;
     MajorVersionBumpMessage   = majorVersionBumpMessage;
     MinorVersionBumpMessage   = minorVersionBumpMessage;
     PatchVersionBumpMessage   = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
 }
コード例 #2
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
 }
コード例 #3
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     AssemblyFileVersioningScheme assemblyFileVersioningScheme,
     string?assemblyInformationalFormat,
     string?assemblyVersioningFormat,
     string?assemblyFileVersioningFormat,
     VersioningMode versioningMode, string?gitTagPrefix,
     string?tag, string?nextVersion, IncrementStrategy increment,
     string?branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string?tagNumberPattern,
     string?continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string?majorVersionBumpMessage,
     string?minorVersionBumpMessage,
     string?patchVersionBumpMessage,
     string?noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable <IVersionFilter> versionFilters,
     bool tracksReleaseBranches,
     bool isCurrentBranchRelease,
     string?commitDateFormat,
     bool updateBuildNumber,
     int preReleaseWeight,
     int tagPreReleaseWeight)
 {
     AssemblyVersioningScheme     = assemblyVersioningScheme;
     AssemblyFileVersioningScheme = assemblyFileVersioningScheme;
     AssemblyInformationalFormat  = assemblyInformationalFormat;
     AssemblyVersioningFormat     = assemblyVersioningFormat;
     AssemblyFileVersioningFormat = assemblyFileVersioningFormat;
     VersioningMode     = versioningMode;
     GitTagPrefix       = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget                 = trackMergeTarget;
     MajorVersionBumpMessage          = majorVersionBumpMessage;
     MinorVersionBumpMessage          = minorVersionBumpMessage;
     PatchVersionBumpMessage          = patchVersionBumpMessage;
     NoBumpMessage                    = noBumpMessage;
     CommitMessageIncrementing        = commitMessageIncrementing;
     LegacySemVerPadding              = legacySemVerPaddding;
     BuildMetaDataPadding             = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters                   = versionFilters;
     TracksReleaseBranches            = tracksReleaseBranches;
     IsCurrentBranchRelease           = isCurrentBranchRelease;
     CommitDateFormat                 = commitDateFormat;
     UpdateBuildNumber                = updateBuildNumber;
     PreReleaseWeight                 = preReleaseWeight;
     TagPreReleaseWeight              = tagPreReleaseWeight;
 }
コード例 #4
0
 public static VersionField ToVersionField(this IncrementStrategy strategy)
 {
     return(strategy switch
     {
         IncrementStrategy.None => VersionField.None,
         IncrementStrategy.Major => VersionField.Major,
         IncrementStrategy.Minor => VersionField.Minor,
         IncrementStrategy.Patch => VersionField.Patch,
         _ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null)
     });
コード例 #5
0
        public void IncrementVersion_VersionFieldTest(string source, string expected, VersionField versionField)
        {
            var sourceVer   = SemanticVersion.Parse(source);
            var expectedVer = SemanticVersion.Parse(expected);

            var strategy  = new IncrementStrategy(versionField);
            var actualVer = strategy.IncrementVersion(sourceVer);

            Assert.That(actualVer, Is.EqualTo(expectedVer));
        }
コード例 #6
0
 public static void ApplyBranchDefaults(Config config,
     BranchConfig branchConfig,
     string defaultTag = "useBranchName",
     IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
     bool defaultPreventIncrement = false,
     VersioningMode? defaultVersioningMode = null, // Looked up from main config
     bool defaultTrackMergeTarget = false,
     string defaultTagNumberPattern = null)
 {
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
 }
コード例 #7
0
 public static void ApplyBranchDefaults(Config config,
                                        BranchConfig branchConfig,
                                        string defaultTag = "useBranchName",
                                        IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
                                        bool defaultPreventIncrement         = false,
                                        VersioningMode?defaultVersioningMode = null, // Looked up from main config
                                        bool defaultTrackMergeTarget         = false,
                                        string defaultTagNumberPattern       = null)
 {
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment        = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode   = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
 }
コード例 #8
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     string noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable <IVersionFilter> versionFilters,
     bool isCurrentBranchDevelop,
     bool isCurrentBranchRelease)
 {
     AssemblyVersioningScheme    = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode     = versioningMode;
     GitTagPrefix       = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget                 = trackMergeTarget;
     MajorVersionBumpMessage          = majorVersionBumpMessage;
     MinorVersionBumpMessage          = minorVersionBumpMessage;
     PatchVersionBumpMessage          = patchVersionBumpMessage;
     NoBumpMessage                    = noBumpMessage;
     CommitMessageIncrementing        = commitMessageIncrementing;
     LegacySemVerPadding              = legacySemVerPaddding;
     BuildMetaDataPadding             = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters                   = versionFilters;
     IsCurrentBranchDevelop           = isCurrentBranchDevelop;
     IsCurrentBranchRelease           = isCurrentBranchRelease;
 }
コード例 #9
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     string noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable<IVersionFilter> versionFilters,
     bool isCurrentBranchDevelop,
     bool isCurrentBranchRelease)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     NoBumpMessage = noBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
     LegacySemVerPadding = legacySemVerPaddding;
     BuildMetaDataPadding = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters = versionFilters;
     IsCurrentBranchDevelop = isCurrentBranchDevelop;
     IsCurrentBranchRelease = isCurrentBranchRelease;
 }
コード例 #10
0
        public static VersionField ToVersionField(this IncrementStrategy strategy)
        {
            switch (strategy)
            {
            case IncrementStrategy.None:
                return(VersionField.None);

            case IncrementStrategy.Major:
                return(VersionField.Major);

            case IncrementStrategy.Minor:
                return(VersionField.Minor);

            case IncrementStrategy.Patch:
                return(VersionField.Patch);

            default:
                throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null);
            }
        }
コード例 #11
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy?alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new ConfigurationBuilder()
                         .Add(new Config {
                Increment = increment
            })
                         .Build();

            using var fixture = new EmptyRepositoryFixture();
            fixture.MakeACommit();
            fixture.BranchTo(dummyBranchName);
            fixture.MakeACommit();

            var context = GetGitVersionContext(fixture.RepositoryPath, fixture.Repository.ToGitRepository(), dummyBranchName, config);

            context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
        }
コード例 #12
0
        public SemanticVersion IncrementVersion(IncrementStrategy incrementStrategy)
        {
            var incremented = new SemanticVersion(this);

            if (!incremented.PreReleaseTag.HasTag())
            {
                switch (incrementStrategy)
                {
                case IncrementStrategy.None:
                    break;

                case IncrementStrategy.Major:
                    incremented.Major++;
                    incremented.Minor = 0;
                    incremented.Patch = 0;
                    break;

                case IncrementStrategy.Minor:
                    incremented.Minor++;
                    incremented.Patch = 0;
                    break;

                case IncrementStrategy.Patch:
                    incremented.Patch++;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            else
            {
                if (incremented.PreReleaseTag.Number != null)
                {
                    incremented.PreReleaseTag.Number = incremented.PreReleaseTag.Number;
                    incremented.PreReleaseTag.Number++;
                }
            }

            return(incremented);
        }
コード例 #13
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy?alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new Config
            {
                Increment = increment
            };

            config.Reset();

            using var fixture = new EmptyRepositoryFixture();
            fixture.MakeACommit();
            fixture.BranchTo(dummyBranchName);
            fixture.MakeACommit();

            var context = new GitVersionContext(fixture.Repository, log, fixture.Repository.Branches[dummyBranchName], config);

            context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
        }
コード例 #14
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy? alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new Config
            {
                Increment = increment
            };
            ConfigurationProvider.ApplyDefaultsTo(config);

            using (var fixture = new EmptyRepositoryFixture())
            {
                fixture.MakeACommit();
                fixture.BranchTo(dummyBranchName);
                fixture.MakeACommit();

                var context = new GitVersionContext(fixture.Repository, fixture.Repository.Branches[dummyBranchName], config);
                context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
            }
        }
コード例 #15
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     bool disableMergeMessageStrategy,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding
     )
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     DisableMergeMessageStrategy = disableMergeMessageStrategy;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
     LegacySemVerPadding = legacySemVerPaddding;
     BuildMetaDataPadding = buildMetaDataPadding;
 }
コード例 #16
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode           = versioningMode;
     GitTagPrefix             = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
 }
コード例 #17
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
 }
コード例 #18
0
 public static void ApplyBranchDefaults(Config config,
     BranchConfig branchConfig,
     string branchRegex,
     string defaultTag = "useBranchName",
     IncrementStrategy? defaultIncrementStrategy = null, // Looked up from main config
     bool defaultPreventIncrement = false,
     VersioningMode? defaultVersioningMode = null, // Looked up from main config
     bool defaultTrackMergeTarget = false,
     string defaultTagNumberPattern = null,
     bool tracksReleaseBranches = false,
     bool isReleaseBranch = false,
     bool isMainline = false)
 {
     branchConfig.Regex = string.IsNullOrEmpty(branchConfig.Regex) ? branchRegex : branchConfig.Regex;
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment = branchConfig.Increment ?? defaultIncrementStrategy ?? config.Increment ?? DefaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
     branchConfig.TracksReleaseBranches = branchConfig.TracksReleaseBranches ?? tracksReleaseBranches;
     branchConfig.IsReleaseBranch = branchConfig.IsReleaseBranch ?? isReleaseBranch;
     branchConfig.IsMainline = branchConfig.IsMainline ?? isMainline;
 }
コード例 #19
0
 public static void ApplyBranchDefaults(Config config,
                                        BranchConfig branchConfig,
                                        string branchRegex,
                                        string defaultTag = "useBranchName",
                                        IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
                                        bool defaultPreventIncrement         = false,
                                        VersioningMode?defaultVersioningMode = null, // Looked up from main config
                                        bool defaultTrackMergeTarget         = false,
                                        string defaultTagNumberPattern       = null,
                                        bool isDevelop       = false,
                                        bool isReleaseBranch = false,
                                        bool isMainline      = false)
 {
     branchConfig.Regex            = string.IsNullOrEmpty(branchConfig.Regex) ? branchRegex : branchConfig.Regex;
     branchConfig.Tag              = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment        = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode   = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
     branchConfig.IsDevelop        = branchConfig.IsDevelop ?? isDevelop;
     branchConfig.IsReleaseBranch  = branchConfig.IsReleaseBranch ?? isReleaseBranch;
     branchConfig.IsMainline       = branchConfig.IsMainline ?? isMainline;
 }
コード例 #20
0
 public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch
 {