Skip to content

Commit

Permalink
GitTools#1520 Replace special chars in InformationalVersion by daches…
Browse files Browse the repository at this point in the history
… when a custom format is used.
  • Loading branch information
Sven Van Hulle committed Jan 3, 2020
1 parent 5d6ed2a commit 1f6c00a
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"Major":1,
"Minor":2,
"Patch":3,
"PreReleaseTag":"",
"PreReleaseTagWithDash":"",
"PreReleaseLabel":"",
"PreReleaseNumber":"",
"WeightedPreReleaseNumber":"",
"BuildMetaData":5,
"BuildMetaDataPadded":"0005",
"FullBuildMetaData":"5.Branch.feature-123.Sha.commitSha",
"MajorMinorPatch":"1.2.3",
"SemVer":"1.2.3",
"LegacySemVer":"1.2.3",
"LegacySemVerPadded":"1.2.3",
"AssemblySemVer":"1.2.3.0",
"AssemblySemFileVer":"1.2.3.0",
"FullSemVer":"1.2.3+5",
"InformationalVersion":"1.2.3+5.Branch.feature-123.Sha.commitSha",
"BranchName":"feature/123",
"Sha":"commitSha",
"ShortSha":"commitShortSha",
"NuGetVersionV2":"1.2.3",
"NuGetVersion":"1.2.3",
"NuGetPreReleaseTagV2":"",
"NuGetPreReleaseTag":"",
"VersionSourceSha":"versionSourceSha",
"CommitsSinceVersionSource":5,
"CommitsSinceVersionSourcePadded":"0005",
"CommitDate":"2014-03-06"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"Major":1,
"Minor":2,
"Patch":3,
"PreReleaseTag":"",
"PreReleaseTagWithDash":"",
"PreReleaseLabel":"",
"PreReleaseNumber":"",
"WeightedPreReleaseNumber":"",
"BuildMetaData":5,
"BuildMetaDataPadded":"0005",
"FullBuildMetaData":"5.Branch.feature-123.Sha.commitSha",
"MajorMinorPatch":"1.2.3",
"SemVer":"1.2.3",
"LegacySemVer":"1.2.3",
"LegacySemVerPadded":"1.2.3",
"AssemblySemVer":"1.2.3.0",
"AssemblySemFileVer":"1.2.3.0",
"FullSemVer":"1.2.3+5",
"InformationalVersion":"1.2.3+5.Branch.feature-123.Sha.commitShortSha",
"BranchName":"feature/123",
"Sha":"commitSha",
"ShortSha":"commitShortSha",
"NuGetVersionV2":"1.2.3",
"NuGetVersion":"1.2.3",
"NuGetPreReleaseTagV2":"",
"NuGetPreReleaseTag":"",
"VersionSourceSha":"versionSourceSha",
"CommitsSinceVersionSource":5,
"CommitsSinceVersionSourcePadded":"0005",
"CommitDate":"2014-03-06"
}
67 changes: 57 additions & 10 deletions src/GitVersionCore.Tests/VariableProviderTests.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
using System;
using GitVersion;
using GitVersion.Logging;
using NUnit.Framework;
using Shouldly;
using GitVersion.OutputFormatters;
using GitVersion.OutputVariables;
using GitVersion;
using GitVersion.VersionCalculation;
using GitVersion.VersioningModes;
using NUnit.Framework;
using Shouldly;
using System;

namespace GitVersionCore.Tests
{
namespace GitVersionCore.Tests {
[TestFixture]
public class VariableProviderTests : TestBase
{
Expand Down Expand Up @@ -209,10 +208,8 @@ public void ProvidesVariablesInContinuousDeploymentModeWithTagNamePattern()
}

[Test]
public void ProvidesVariablesInContinuousDeploymentModeWithTagSetToUseBranchName()
{
var semVer = new SemanticVersion
{
public void ProvidesVariablesInContinuousDeploymentModeWithTagSetToUseBranchName() {
var semVer = new SemanticVersion {
Major = 1,
Minor = 2,
Patch = 3,
Expand All @@ -229,5 +226,55 @@ public void ProvidesVariablesInContinuousDeploymentModeWithTagSetToUseBranchName

vars.FullSemVer.ShouldBe("1.2.3-feature.5");
}

[Test]
[Category("NoMono")]
[Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")]
public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranch() {
var semVer = new SemanticVersion {
Major = 1,
Minor = 2,
Patch = 3,
BuildMetaData = "5.Branch.feature/123"
};

semVer.BuildMetaData.Branch = "feature/123";
semVer.BuildMetaData.VersionSourceSha = "versionSourceSha";
semVer.BuildMetaData.Sha = "commitSha";
semVer.BuildMetaData.ShortSha = "commitShortSha";
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");


var config = new TestEffectiveConfiguration();

var vars = variableProvider.GetVariablesFor(semVer, config, false);

JsonOutputFormatter.ToJson(vars).ShouldMatchApproved(c => c.SubFolder("Approved"));
}

[Test]
[Category("NoMono")]
[Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")]
public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInformationalFormat() {
var semVer = new SemanticVersion {
Major = 1,
Minor = 2,
Patch = 3,
BuildMetaData = "5.Branch.feature/123"
};

semVer.BuildMetaData.Branch = "feature/123";
semVer.BuildMetaData.VersionSourceSha = "versionSourceSha";
semVer.BuildMetaData.Sha = "commitSha";
semVer.BuildMetaData.ShortSha = "commitShortSha";
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");


var config = new TestEffectiveConfiguration(assemblyInformationalFormat: "{Major}.{Minor}.{Patch}+{CommitsSinceVersionSource}.Branch.{BranchName}.Sha.{ShortSha}");

var vars = variableProvider.GetVariablesFor(semVer, config, false);

JsonOutputFormatter.ToJson(vars).ShouldMatchApproved(c => c.SubFolder("Approved"));
}
}
}
14 changes: 7 additions & 7 deletions src/GitVersionCore/OutputVariables/VariableProvider.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
using System;
using System.Text.RegularExpressions;
using GitVersion.Configuration;
using GitVersion.Exceptions;
using GitVersion.Extensions;
using GitVersion.Helpers;
using GitVersion.VersionCalculation;
using GitVersion.VersioningModes;
using GitVersion.Configuration;
using GitVersion.Helpers;
using System;
using System.Text.RegularExpressions;

namespace GitVersion.OutputVariables
{
namespace GitVersion.OutputVariables {
public class VariableProvider : IVariableProvider
{
private readonly INextVersionCalculator nextVersionCalculator;
Expand Down Expand Up @@ -56,7 +56,7 @@ public VersionVariables GetVariablesFor(SemanticVersion semanticVersion, Effecti
var semverFormatValues = new SemanticVersionFormatValues(semanticVersion, config);

var informationalVersion = CheckAndFormatString(config.AssemblyInformationalFormat, semverFormatValues,
environment, semverFormatValues.DefaultInformationalVersion, "AssemblyInformationalVersion");
environment, semverFormatValues.DefaultInformationalVersion, "AssemblyInformationalVersion").RegexReplace("[^0-9A-Za-z-.+]", "-");

var assemblyFileSemVer = CheckAndFormatString(config.AssemblyFileVersioningFormat, semverFormatValues,
environment, semverFormatValues.AssemblyFileSemVer, "AssemblyFileVersioningFormat");
Expand Down

0 comments on commit 1f6c00a

Please sign in to comment.