Skip to content

Commit a4cf51a

Browse files
committed
Merge pull request #366 from JakeGinnivan/BetterContinuousDeploymentLogic
Better continuous deployment logic
2 parents 28c8531 + 1146d58 commit a4cf51a

23 files changed

+264
-102
lines changed

GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void BuildNumberIsFullSemVer()
2222

2323
semanticVersion.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
2424
semanticVersion.BuildMetaData.Sha = "commitSha";
25-
var variables = VariableProvider.GetVariablesFor(semanticVersion, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
25+
var variables = VariableProvider.GetVariablesFor(semanticVersion, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery, "ci", false);
2626
new BuildServer().WriteIntegration(writes.Add, variables);
2727

2828
writes[1].ShouldBe("1.2.3-beta.1+5");

GitVersionCore.Tests/ConfigProviderTests.CanWriteOutEffectiveConfiguration.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
assembly-versioning-scheme: MajorMinorPatch
22
mode: ContinuousDelivery
33
tag-prefix: '[vV]'
4+
continuous-delivery-fallback-tag: ci
45
branches:
56
master:
67
tag:

GitVersionCore.Tests/JsonVersionBuilderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void Json()
1717
PreReleaseTag = "unstable4",
1818
BuildMetaData = new SemanticVersionBuildMetaData(5, "feature1", "commitSha",DateTimeOffset.Parse("2014-03-06 23:59:59Z"))
1919
};
20-
var variables = VariableProvider.GetVariablesFor(semanticVersion, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
20+
var variables = VariableProvider.GetVariablesFor(semanticVersion, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery, "ci", false);
2121
var json = JsonOutputFormatter.ToJson(variables);
2222
Approvals.Verify(json);
2323
}

GitVersionCore.Tests/SemanticVersionTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ public void ValidateInvalidVersionParsing(string versionString)
5656
[Test]
5757
public void LegacySemVerTest()
5858
{
59-
new SemanticVersionPreReleaseTag("TKT-2134_JiraDescription", null).ToString("l").ShouldBe("TKT2134");
59+
new SemanticVersionPreReleaseTag("TKT-2134_JiraDescription", null).ToString("l").ShouldBe("TKT-2134");
6060
new SemanticVersionPreReleaseTag("AReallyReallyReallyLongBranchName", null).ToString("l").ShouldBe("AReallyReallyReallyL");
61-
new SemanticVersionPreReleaseTag("TKT-2134_JiraDescription", 1).ToString("lp").ShouldBe("TKT21340001");
61+
new SemanticVersionPreReleaseTag("TKT-2134_JiraDescription", 1).ToString("lp").ShouldBe("TKT-2134-0001");
62+
new SemanticVersionPreReleaseTag("TKT-2134", 1).ToString("lp").ShouldBe("TKT-2134-0001");
6263
new SemanticVersionPreReleaseTag("AReallyReallyReallyLongBranchName", 1).ToString("lp").ShouldBe("AReallyReallyRea0001");
6364
}
6465

GitVersionCore.Tests/TestEffectiveConfiguration.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ public TestEffectiveConfiguration(
1212
string nextVersion = null,
1313
string branchPrefixToTrim = "",
1414
bool preventIncrementForMergedBranchVersion = false,
15-
string tagNumberPattern = null) :
15+
string tagNumberPattern = null,
16+
string continuousDeploymentFallbackTag = "ci") :
1617
base(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, IncrementStrategy.Patch,
17-
branchPrefixToTrim, preventIncrementForMergedBranchVersion, tagNumberPattern)
18+
branchPrefixToTrim, preventIncrementForMergedBranchVersion, tagNumberPattern, continuousDeploymentFallbackTag)
1819
{
1920
}
2021
}

GitVersionCore.Tests/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
"Major":1,
33
"Minor":2,
44
"Patch":3,
5-
"PreReleaseTag":"",
6-
"PreReleaseTagWithDash":"",
5+
"PreReleaseTag":"ci.5",
6+
"PreReleaseTagWithDash":"-ci.5",
77
"BuildMetaData":5,
88
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",
99
"MajorMinorPatch":"1.2.3",
10-
"SemVer":"1.2.3.5",
11-
"LegacySemVer":"1.2.3.5",
12-
"LegacySemVerPadded":"1.2.3.5",
10+
"SemVer":"1.2.3-ci.5",
11+
"LegacySemVer":"1.2.3-ci5",
12+
"LegacySemVerPadded":"1.2.3-ci0005",
1313
"AssemblySemVer":"1.2.3.0",
14-
"FullSemVer":"1.2.3.5",
15-
"InformationalVersion":"1.2.3.5+Branch.develop.Sha.commitSha",
14+
"FullSemVer":"1.2.3-ci.5",
15+
"InformationalVersion":"1.2.3-ci.5+Branch.develop.Sha.commitSha",
1616
"BranchName":"develop",
1717
"Sha":"commitSha",
18-
"NuGetVersionV2":"1.2.3.5",
19-
"NuGetVersion":"1.2.3.5"
18+
"NuGetVersionV2":"1.2.3-ci0005",
19+
"NuGetVersion":"1.2.3-ci0005"
2020
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Major":1,
3+
"Minor":2,
4+
"Patch":3,
5+
"PreReleaseTag":"",
6+
"PreReleaseTagWithDash":"",
7+
"BuildMetaData":5,
8+
"FullBuildMetaData":"5.Sha.commitSha",
9+
"MajorMinorPatch":"1.2.3",
10+
"SemVer":"1.2.3",
11+
"LegacySemVer":"1.2.3",
12+
"LegacySemVerPadded":"1.2.3",
13+
"AssemblySemVer":"1.2.3.0",
14+
"FullSemVer":"1.2.3+5",
15+
"InformationalVersion":"1.2.3+5.Sha.commitSha",
16+
"BranchName":"",
17+
"Sha":"commitSha",
18+
"NuGetVersionV2":"1.2.3",
19+
"NuGetVersion":"1.2.3"
20+
}

GitVersionCore.Tests/VariableProviderTests.cs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForPreRelease()
2121
semVer.BuildMetaData.Sha = "commitSha";
2222
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
2323

24-
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
24+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery, "ci", false);
2525

2626
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
2727
}
@@ -41,7 +41,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForPreRelease()
4141
semVer.BuildMetaData.Sha = "commitSha";
4242
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
4343

44-
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment);
44+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment, "ci", false);
4545

4646
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
4747
}
@@ -60,7 +60,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForStable()
6060
semVer.BuildMetaData.Sha = "commitSha";
6161
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
6262

63-
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
63+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery, "ci", false);
6464

6565
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
6666
}
@@ -79,7 +79,29 @@ public void ProvidesVariablesInContinuousDeploymentModeForStable()
7979
semVer.BuildMetaData.Sha = "commitSha";
8080
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
8181

82-
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment);
82+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment, "ci", false);
83+
84+
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
85+
}
86+
87+
[Test]
88+
public void ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged()
89+
{
90+
var semVer = new SemanticVersion
91+
{
92+
Major = 1,
93+
Minor = 2,
94+
Patch = 3,
95+
BuildMetaData =
96+
{
97+
CommitsSinceTag = 5,
98+
Sha = "commitSha",
99+
CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z")
100+
}
101+
};
102+
103+
104+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment, "ci", true);
83105

84106
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
85107
}

GitVersionCore/Configuration/Config.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public Config()
1313
AssemblyVersioningScheme = AssemblyVersioningScheme.MajorMinorPatch;
1414
TagPrefix = "[vV]";
1515
VersioningMode = GitVersion.VersioningMode.ContinuousDelivery;
16+
ContinuousDeploymentFallbackTag = "ci";
1617

1718
Branches["master"] = new BranchConfig
1819
{
@@ -56,6 +57,9 @@ public Config()
5657
[YamlMember(Alias = "tag-prefix")]
5758
public string TagPrefix { get; set; }
5859

60+
[YamlMember(Alias = "continuous-delivery-fallback-tag")]
61+
public string ContinuousDeploymentFallbackTag { get; set; }
62+
5963
[YamlMember(Alias = "next-version")]
6064
public string NextVersion { get; set; }
6165

GitVersionCore/Configuration/ConfigSerialiser.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static void WriteSample(TextWriter writer)
2929
writer.WriteLine("# tag-prefix: '[vV|version-] # regex to match git tag prefix");
3030
writer.WriteLine("# next-version: 1.0.0");
3131
writer.WriteLine("# mode: ContinuousDelivery | ContinuousDeployment");
32+
writer.WriteLine("# continuous-delivery-fallback-tag: ci");
3233
writer.WriteLine("#branches:");
3334
writer.WriteLine("# release[/-]*:\n mode: ContinuousDelivery | ContinuousDeployment\n tag: rc");
3435
writer.WriteLine("# develop:\n mode: ContinuousDelivery | ContinuousDeployment\n tag: alpha");

0 commit comments

Comments
 (0)