Skip to content

Commit 02c8978

Browse files
authored
Merge branch 'master' into patch-1
2 parents 82e7e1f + 0f1d238 commit 02c8978

File tree

6 files changed

+51
-19
lines changed

6 files changed

+51
-19
lines changed

src/GitVersionCore.Tests/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,29 @@
22
"Major":1,
33
"Minor":2,
44
"Patch":3,
5-
"PreReleaseTag":"unstable.5",
6-
"PreReleaseTagWithDash":"-unstable.5",
5+
"PreReleaseTag":"unstable.8",
6+
"PreReleaseTagWithDash":"-unstable.8",
77
"PreReleaseLabel":"unstable",
8-
"PreReleaseNumber":5,
9-
"WeightedPreReleaseNumber":5,
8+
"PreReleaseNumber":8,
9+
"WeightedPreReleaseNumber":8,
1010
"BuildMetaData":"",
1111
"BuildMetaDataPadded":"",
1212
"FullBuildMetaData":"Branch.develop.Sha.commitSha",
1313
"MajorMinorPatch":"1.2.3",
14-
"SemVer":"1.2.3-unstable.5",
15-
"LegacySemVer":"1.2.3-unstable5",
16-
"LegacySemVerPadded":"1.2.3-unstable0005",
14+
"SemVer":"1.2.3-unstable.8",
15+
"LegacySemVer":"1.2.3-unstable8",
16+
"LegacySemVerPadded":"1.2.3-unstable0008",
1717
"AssemblySemVer":"1.2.3.0",
1818
"AssemblySemFileVer":"1.2.3.0",
19-
"FullSemVer":"1.2.3-unstable.5",
20-
"InformationalVersion":"1.2.3-unstable.5+Branch.develop.Sha.commitSha",
19+
"FullSemVer":"1.2.3-unstable.8",
20+
"InformationalVersion":"1.2.3-unstable.8+Branch.develop.Sha.commitSha",
2121
"BranchName":"develop",
2222
"Sha":"commitSha",
2323
"ShortSha":"commitShortSha",
24-
"NuGetVersionV2":"1.2.3-unstable0005",
25-
"NuGetVersion":"1.2.3-unstable0005",
26-
"NuGetPreReleaseTagV2":"unstable0005",
27-
"NuGetPreReleaseTag":"unstable0005",
24+
"NuGetVersionV2":"1.2.3-unstable0008",
25+
"NuGetVersion":"1.2.3-unstable0008",
26+
"NuGetPreReleaseTagV2":"unstable0008",
27+
"NuGetPreReleaseTag":"unstable0008",
2828
"VersionSourceSha":"versionSourceSha",
2929
"CommitsSinceVersionSource":5,
3030
"CommitsSinceVersionSourcePadded":"0005",

src/GitVersionCore.Tests/BuildServers/AzurePipelinesTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void EscapeValues()
4444
var versionBuilder = new AzurePipelines(environment, log);
4545
var vsVersion = versionBuilder.GenerateSetParameterMessage("Foo", "0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
4646

47-
vsVersion[0].ShouldBe("##vso[task.setvariable variable=GitVersion.Foo;]0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
47+
vsVersion[0].ShouldBe("##vso[task.setvariable variable=GitVersion.Foo;isOutput=true]0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
4848
}
4949

5050
[Test]

src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,5 +273,21 @@ public void CommitsSinceVersionSourceShouldNotGoDownUponMergingFeatureOnlyToDeve
273273
var expectedFullSemVer = "1.3.0-alpha.5";
274274
fixture.AssertFullSemver(config, expectedFullSemVer);
275275
}
276+
277+
[Test]
278+
public void PreviousPreReleaseTagShouldBeRespectedWhenCountingCommits()
279+
{
280+
using var fixture = new EmptyRepositoryFixture();
281+
282+
fixture.Repository.MakeACommit();
283+
284+
fixture.BranchTo("develop");
285+
fixture.MakeATaggedCommit("1.0.0-alpha.3"); // manual bump version
286+
287+
fixture.MakeACommit();
288+
fixture.MakeACommit();
289+
290+
fixture.AssertFullSemver("1.0.0-alpha.5");
291+
}
276292
}
277293
}

src/GitVersionCore/BuildServers/AzurePipelines.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public override string[] GenerateSetParameterMessage(string name, string value)
2121
{
2222
return new[]
2323
{
24-
$"##vso[task.setvariable variable=GitVersion.{name};]{value}"
24+
$"##vso[task.setvariable variable=GitVersion.{name};isOutput=true]{value}"
2525
};
2626
}
2727

src/GitVersionCore/GitVersionCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
<ItemGroup>
2020
<PackageReference Include="LibGit2Sharp" Version="$(PackageVersion_LibGit2Sharp)" />
21-
<PackageReference Include="JetBrains.Annotations" Version="$(PackageVersion_JetBrainsAnnotations)" PrivateAssets="All"></PackageReference>
21+
<PackageReference Include="JetBrains.Annotations" Version="$(PackageVersion_JetBrainsAnnotations)" PrivateAssets="All" />
2222
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.1" />
2323
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.1" />
2424
<PackageReference Include="YamlDotNet" Version="$(PackageVersion_YamlDotNet)" />

src/GitVersionCore/OutputVariables/VariableProvider.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,25 @@ public VersionVariables GetVariablesFor(SemanticVersion semanticVersion, Effecti
102102
private static void PromoteNumberOfCommitsToTagNumber(SemanticVersion semanticVersion)
103103
{
104104
// For continuous deployment the commits since tag gets promoted to the pre-release number
105-
semanticVersion.PreReleaseTag.Number = semanticVersion.BuildMetaData.CommitsSinceTag;
106-
semanticVersion.BuildMetaData.CommitsSinceVersionSource = semanticVersion.BuildMetaData.CommitsSinceTag ?? 0;
107-
semanticVersion.BuildMetaData.CommitsSinceTag = null;
105+
if (!semanticVersion.BuildMetaData.CommitsSinceTag.HasValue)
106+
{
107+
semanticVersion.PreReleaseTag.Number = null;
108+
semanticVersion.BuildMetaData.CommitsSinceVersionSource = 0;
109+
}
110+
else
111+
{
112+
// Number of commits since last tag should be added to PreRelease number if given. Remember to deduct automatic version bump.
113+
if (semanticVersion.PreReleaseTag.Number.HasValue)
114+
{
115+
semanticVersion.PreReleaseTag.Number += semanticVersion.BuildMetaData.CommitsSinceTag - 1;
116+
}
117+
else
118+
{
119+
semanticVersion.PreReleaseTag.Number = semanticVersion.BuildMetaData.CommitsSinceTag;
120+
}
121+
semanticVersion.BuildMetaData.CommitsSinceVersionSource = semanticVersion.BuildMetaData.CommitsSinceTag.Value;
122+
semanticVersion.BuildMetaData.CommitsSinceTag = null; // why is this set to null ?
123+
}
108124
}
109125

110126
private static string CheckAndFormatString<T>(string formatString, T source, IEnvironment environment, string defaultValue, string formatVarName)

0 commit comments

Comments
 (0)