diff --git a/docs/input/docs/more-info/variables.md b/docs/input/docs/more-info/variables.md index 8f4fde56a3..1f2e6b2244 100644 --- a/docs/input/docs/more-info/variables.md +++ b/docs/input/docs/more-info/variables.md @@ -29,6 +29,7 @@ Running `GitVersion.exe` in your repo will show you what is available. For the "FullSemVer":"3.0.0-beta.1+1", "InformationalVersion":"3.0.0-beta.1+1.Branch.release/3.0.0.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "BranchName":"release/3.0.0", + "EscapedBranchName":"release-3.0.0", "Sha":"28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "ShortSha":"28c8531", "NuGetVersionV2":"3.0.0-beta0001", diff --git a/src/GitVersionCore.Tests/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersionCore.Tests/Approved/JsonVersionBuilderTests.Json.approved.txt index 8058db300f..ecb87d8b20 100644 --- a/src/GitVersionCore.Tests/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersionCore.Tests/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.0-unstable.4+5", "InformationalVersion":"1.2.0-unstable.4+5.Branch.feature1.Sha.commitSha", "BranchName":"feature1", + "EscapedBranchName":"feature1", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.0-unstable0004", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 6cc023b2aa..3e5bfc4add 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3+5", "InformationalVersion":"1.2.3+5.Branch.feature-123.Sha.commitSha", "BranchName":"feature/123", + "EscapedBranchName":"feature-123", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInformationalFormat.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInformationalFormat.approved.txt index 64fd5b3400..d19cf3a4cc 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInformationalFormat.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInformationalFormat.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3+5", "InformationalVersion":"1.2.3+5.Branch.feature-123.Sha.commitShortSha", "BranchName":"feature/123", + "EscapedBranchName":"feature-123", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index 21791aeaaa..ecba0b4238 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3-unstable.4+5", "InformationalVersion":"1.2.3-unstable.4+5.Branch.develop.Sha.commitSha", "BranchName":"develop", + "EscapedBranchName":"develop", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3-unstable0004", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt index 039b41cb09..7f4321cfee 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3-unstable.4+5", "InformationalVersion":"1.2.3-unstable.4+5.Branch.develop.Sha.commitSha", "BranchName":"develop", + "EscapedBranchName":"develop", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3-unstable00004", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index 2e3623c345..0a21e2a35d 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3+5", "InformationalVersion":"1.2.3+5.Branch.develop.Sha.commitSha", "BranchName":"develop", + "EscapedBranchName":"develop", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index fb99d985f4..3d4a4867ab 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3-unstable.8", "InformationalVersion":"1.2.3-unstable.8+Branch.develop.Sha.commitSha", "BranchName":"develop", + "EscapedBranchName":"develop", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3-unstable0008", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index 7213bc3934..15542dc2d2 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3-ci.5", "InformationalVersion":"1.2.3-ci.5+Branch.develop.Sha.commitSha", "BranchName":"develop", + "EscapedBranchName":"develop", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3-ci0005", diff --git a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 2170467d25..68fa187286 100644 --- a/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -19,6 +19,7 @@ "FullSemVer":"1.2.3+5", "InformationalVersion":"1.2.3+5.Sha.commitSha", "BranchName":"", + "EscapedBranchName":"", "Sha":"commitSha", "ShortSha":"commitShortSha", "NuGetVersionV2":"1.2.3", diff --git a/src/GitVersionCore.Tests/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersionCore.Tests/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index 73aef92757..effba7df8e 100644 --- a/src/GitVersionCore.Tests/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersionCore.Tests/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -1,4 +1,4 @@ - + @@ -8,6 +8,7 @@ + diff --git a/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt index d9abe5e7ab..ee67a9bbd6 100644 --- a/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -31,6 +31,7 @@ static class GitVersionInformation public static string FullSemVer = "1.2.3-unstable.4+5"; public static string InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha"; public static string BranchName = "feature1"; + public static string EscapedBranchName = "feature1"; public static string Sha = "commitSha"; public static string ShortSha = "commitShortSha"; public static string NuGetVersionV2 = "1.2.3-unstable0004"; diff --git a/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt index 106f191ff0..833c51acc6 100644 --- a/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -31,6 +31,7 @@ module GitVersionInformation let FullSemVer = "1.2.3-unstable.4+5" let InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" let BranchName = "feature1" + let EscapedBranchName = "feature1" let Sha = "commitSha" let ShortSha = "commitShortSha" let NuGetVersionV2 = "1.2.3-unstable0004" diff --git a/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt index b14d1635d7..5cad04ce59 100644 --- a/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -32,6 +32,7 @@ NotInheritable Class GitVersionInformation Public Shared FullSemVer As String = "1.2.3-unstable.4+5" Public Shared InformationalVersion As String = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" Public Shared BranchName As String = "feature1" + Public Shared EscapedBranchName As String = "feature1" Public Shared Sha As String = "commitSha" Public Shared ShortSha As String = "commitShortSha" Public Shared NuGetVersionV2 As String = "1.2.3-unstable0004" diff --git a/src/GitVersionCore.Tests/GitVersionExecutorTests.cs b/src/GitVersionCore.Tests/GitVersionExecutorTests.cs index 947d7345c4..46c4e86a4d 100644 --- a/src/GitVersionCore.Tests/GitVersionExecutorTests.cs +++ b/src/GitVersionCore.Tests/GitVersionExecutorTests.cs @@ -125,6 +125,7 @@ public void CacheFileExistsOnDisk() FullSemVer: 4.10.3-test.19 InformationalVersion: 4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f BranchName: feature/test + EscapedBranchName: feature-test Sha: dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f ShortSha: dd2a29af NuGetVersionV2: 4.10.3-test0019 @@ -185,6 +186,7 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn FullSemVer: 4.10.3-test.19 InformationalVersion: 4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f BranchName: feature/test + EscapedBranchName: feature-test Sha: dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f ShortSha: dd2a29af NuGetVersionV2: 4.10.3-test0019 @@ -268,6 +270,7 @@ public void ConfigChangeInvalidatesCache() FullSemVer: 4.10.3-test.19 InformationalVersion: 4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f BranchName: feature/test + EscapedBranchName: feature-test Sha: dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f ShortSha: dd2a29af NuGetVersionV2: 4.10.3-test0019 @@ -328,6 +331,7 @@ public void NoCacheBypassesCache() FullSemVer: 4.10.3-test.19 InformationalVersion: 4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f BranchName: feature/test + EscapedBranchName: feature-test Sha: dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f ShortSha: dd2a29af NuGetVersionV2: 4.10.3-test0019 diff --git a/src/GitVersionCore.Tests/Helpers/TestableVersionVariables.cs b/src/GitVersionCore.Tests/Helpers/TestableVersionVariables.cs index 619bb0e004..8da52b1dcb 100644 --- a/src/GitVersionCore.Tests/Helpers/TestableVersionVariables.cs +++ b/src/GitVersionCore.Tests/Helpers/TestableVersionVariables.cs @@ -7,15 +7,15 @@ internal class TestableVersionVariables : VersionVariables public TestableVersionVariables( string major = "", string minor = "", string patch = "", string buildMetaData = "", string buildMetaDataPadded = "", string fullBuildMetaData = "", string branchName = "", - string sha = "", string shortSha = "", string majorMinorPatch = "", string semVer = "", - string legacySemVer = "", string legacySemVerPadded = "", string fullSemVer = "", + string escapedBranchName = "", string sha = "", string shortSha = "", string majorMinorPatch = "", + string semVer = "", string legacySemVer = "", string legacySemVerPadded = "", string fullSemVer = "", string assemblySemVer = "", string assemblySemFileVer = "", string preReleaseTag = "", string preReleaseTagWithDash = "", string preReleaseLabel = "", string preReleaseNumber = "", string weightedPreReleaseNumber = "", string informationalVersion = "", string commitDate = "", string nugetVersion = "", string nugetVersionV2 = "", string nugetPreReleaseTag = "", string nugetPreReleaseTagV2 = "", string versionSourceSha = "", string commitsSinceVersionSource = "", string commitsSinceVersionSourcePadded = "") : base( - major, minor, patch, buildMetaData, buildMetaDataPadded, fullBuildMetaData, branchName, + major, minor, patch, buildMetaData, buildMetaDataPadded, fullBuildMetaData, branchName, escapedBranchName, sha, shortSha, majorMinorPatch, semVer, legacySemVer, legacySemVerPadded, fullSemVer, assemblySemVer, assemblySemFileVer, preReleaseTag, weightedPreReleaseNumber, preReleaseTagWithDash, preReleaseLabel, preReleaseNumber, informationalVersion, commitDate, nugetVersion, nugetVersionV2, diff --git a/src/GitVersionCore/OutputVariables/VariableProvider.cs b/src/GitVersionCore/OutputVariables/VariableProvider.cs index 6808ba5be9..16d0ed28d1 100644 --- a/src/GitVersionCore/OutputVariables/VariableProvider.cs +++ b/src/GitVersionCore/OutputVariables/VariableProvider.cs @@ -76,6 +76,7 @@ public VersionVariables GetVariablesFor(SemanticVersion semanticVersion, Effecti semverFormatValues.BuildMetaDataPadded, semverFormatValues.FullBuildMetaData, semverFormatValues.BranchName, + semverFormatValues.EscapedBranchName, semverFormatValues.Sha, semverFormatValues.ShortSha, semverFormatValues.MajorMinorPatch, diff --git a/src/GitVersionCore/OutputVariables/VersionVariables.cs b/src/GitVersionCore/OutputVariables/VersionVariables.cs index 47e897d8e1..c2e991ddaa 100644 --- a/src/GitVersionCore/OutputVariables/VersionVariables.cs +++ b/src/GitVersionCore/OutputVariables/VersionVariables.cs @@ -18,6 +18,7 @@ public VersionVariables(string major, string buildMetaDataPadded, string fullBuildMetaData, string branchName, + string escapedBranchName, string sha, string shortSha, string majorMinorPatch, @@ -49,6 +50,7 @@ public VersionVariables(string major, BuildMetaDataPadded = buildMetaDataPadded; FullBuildMetaData = fullBuildMetaData; BranchName = branchName; + EscapedBranchName = escapedBranchName; Sha = sha; ShortSha = shortSha; MajorMinorPatch = majorMinorPatch; @@ -94,6 +96,7 @@ public VersionVariables(string major, public string FullSemVer { get; private set; } public string InformationalVersion { get; private set; } public string BranchName { get; private set; } + public string EscapedBranchName { get; private set; } public string Sha { get; private set; } public string ShortSha { get; private set; } public string NuGetVersionV2 { get; private set; } diff --git a/src/GitVersionCore/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersionCore/SemanticVersioning/SemanticVersionFormatValues.cs index 85236096ba..0771637c59 100644 --- a/src/GitVersionCore/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersionCore/SemanticVersioning/SemanticVersionFormatValues.cs @@ -54,6 +54,8 @@ public SemanticVersionFormatValues(SemanticVersion semver, EffectiveConfiguratio public string BranchName => semver.BuildMetaData.Branch; + public string EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace("[^a-zA-Z0-9-]", "-"); + public string Sha => semver.BuildMetaData.Sha; public string ShortSha => semver.BuildMetaData.ShortSha; diff --git a/src/GitVersionTask.MsBuild/Tasks/GetVersion.cs b/src/GitVersionTask.MsBuild/Tasks/GetVersion.cs index 6133ba3127..fbe2fd76f5 100644 --- a/src/GitVersionTask.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersionTask.MsBuild/Tasks/GetVersion.cs @@ -64,6 +64,9 @@ public class GetVersion : GitVersionTaskBase [Output] public string BranchName { get; set; } + [Output] + public string EscapedBranchName { get; set; } + [Output] public string Sha { get; set; }