public void NextVersionWithInvalidAutoIncrementThrows() { var opts = new VersionCalculationOptions() { AutoIncrement = VersionPart.None, }; Assert.Throws <InvalidOperationException>(() => VersionCalculator.NextVersion(new SemVer(1, 0, 0), opts)); }
public void NextVersion(string versionStr, VersionPart part, string expectedNextStr) { var version = SemVer.Parse(versionStr); var expectedNext = SemVer.Parse(expectedNextStr); var opts = new VersionCalculationOptions() { AutoIncrement = part, }; var actualNext = VersionCalculator.NextVersion(version, opts); actualNext.Should().Be(expectedNext); }
public void CheckVersionBumps(string?versionStr, string?minVer, int height, string resultStr) { var options = new VersionCalculationOptions() { MinimumVersion = SemVer.Parse(minVer ?? "0.1.0"), }; var version = versionStr is null ? (SemVer?)null: SemVer.Parse(versionStr); var result = SemVer.Parse(resultStr); var gotVersion = VersionCalculator.FromTagInfomation(version, options, height); gotVersion.Should().Be(result); gotVersion.ToString().Should().Be(resultStr); }
private async Task <bool> ExecuteAsync() { var log = new MsBuildLogger(Log) { Verbosity = DecodeVerbosity(Verbosity, nameof(Verbosity)), }; var commandRunner = new MsBuildCommandRunner( new SystemCommandRunner(), Log); var opts = new VersionCalculationOptions(); { FilterTags = FilterTags.Trim(); bool disableTagPrefix = bool.TryParse(DisableTagPrefix, out bool parsedBool) && parsedBool; if (disableTagPrefix) { if (!string.IsNullOrWhiteSpace(TagPrefix)) { throw new MsBuildException("TagPrefix cannot be set with DisablePrefix."); } opts.TagPrefix = ""; } else if (!string.IsNullOrWhiteSpace(TagPrefix)) { opts.TagPrefix = TagPrefix; } if (!string.IsNullOrWhiteSpace(DefaultPrereleasePhase)) { opts.DefaultPrereleasePhase = DefaultPrereleasePhase; } if (!string.IsNullOrWhiteSpace(MinimumVersion)) { opts.MinimumVersion = DecodeVersion( MinimumVersion, nameof(MinimumVersion)); } if (!string.IsNullOrWhiteSpace(PrereleaseBaseHeight)) { opts.PrereleaseBaseHeight = DecodeInt( PrereleaseBaseHeight, nameof(PrereleaseBaseHeight)); } if (!string.IsNullOrWhiteSpace(VersionOverride)) { opts.VersionOverride = DecodeVersion( VersionOverride, nameof(VersionOverride)); } if (!string.IsNullOrWhiteSpace(BuildMetadata)) { opts.BuildMetadata = BuildMetadata; } if (!string.IsNullOrWhiteSpace(AutoIncrement)) { opts.AutoIncrement = DecodeVersionPart( AutoIncrement, nameof(AutoIncrement)); } } var version = opts.VersionOverride ?? new SemVer(); if (opts.VersionOverride is null) { var repo = await GitRepoInspector.FromPath(ProjectDirectory, log, commandRunner); ITagFilter?tagFilter = null; if (!string.IsNullOrWhiteSpace(FilterTags)) { tagFilter = new CommandTagFilter(commandRunner, log, FilterTags, ProjectDirectory); } version = await VersionCalculator.FromRepository(repo, opts, log, tagFilter); } Version = version.ToString(); VersionMajor = version.Major.ToString(CultureInfo.InvariantCulture); VersionMinor = version.Minor.ToString(CultureInfo.InvariantCulture); VersionPatch = version.Patch.ToString(CultureInfo.InvariantCulture); VersionPrerelease = version.Prerelease ?? string.Empty; VersionBuildMetadata = version.BuildMetadata ?? string.Empty; return(true); }