Skip to content

Commit fce0bca

Browse files
committed
MyGet buildNumber message now sent based on LegacySemVerPadded.
1 parent 0e3b92e commit fce0bca

File tree

4 files changed

+42
-44
lines changed

4 files changed

+42
-44
lines changed

GitVersionCore/BuildServers/MyGet.cs

+10-22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace GitVersion
22
{
33
using System;
4+
using System.Collections.Generic;
45

56
public class MyGet : BuildServerBase
67
{
@@ -31,35 +32,22 @@ public override void PerformPreProcessingSteps(string gitDirectory)
3132

3233
public override string[] GenerateSetParameterMessage(string name, string value)
3334
{
34-
Environment.SetEnvironmentVariable(string.Format("GitVersion.{0}", name), value, EnvironmentVariableTarget.Process);
35-
36-
return new[]
35+
var messages = new List<string>
3736
{
38-
string.Format("##myget[setParameter name='GitVersion.{0}' value='{1}']", name, EscapeValue(value))
37+
string.Format("##myget[setParameter name='GitVersion.{0}' value='{1}']", name, ServiceMessageEscapeHelper.EscapeValue(value))
3938
};
40-
}
41-
42-
public override string GenerateSetVersionMessage(string versionToUseForBuildNumber)
43-
{
44-
return string.Format("##myget[buildNumber '{0}']", EscapeValue(versionToUseForBuildNumber));
45-
}
4639

47-
static string EscapeValue(string value)
48-
{
49-
if (value == null)
40+
if (string.Equals(name, "LegacySemVerPadded", StringComparison.InvariantCultureIgnoreCase))
5041
{
51-
return null;
42+
messages.Add(string.Format("##myget[buildNumber '{0}']", ServiceMessageEscapeHelper.EscapeValue(value)));
5243
}
53-
// List of escape values from http://confluence.jetbrains.com/display/TCD8/Build+Script+Interaction+with+TeamCity
5444

55-
value = value.Replace("|", "||");
56-
value = value.Replace("'", "|'");
57-
value = value.Replace("[", "|[");
58-
value = value.Replace("]", "|]");
59-
value = value.Replace("\r", "|r");
60-
value = value.Replace("\n", "|n");
45+
return messages.ToArray();
46+
}
6147

62-
return value;
48+
public override string GenerateSetVersionMessage(string versionToUseForBuildNumber)
49+
{
50+
return null;
6351
}
6452
}
6553
}

GitVersionCore/BuildServers/TeamCity.cs

+3-21
Original file line numberDiff line numberDiff line change
@@ -30,32 +30,14 @@ public override string[] GenerateSetParameterMessage(string name, string value)
3030
{
3131
return new[]
3232
{
33-
string.Format("##teamcity[setParameter name='GitVersion.{0}' value='{1}']", name, EscapeValue(value)),
34-
string.Format("##teamcity[setParameter name='system.GitVersion.{0}' value='{1}']", name, EscapeValue(value))
33+
string.Format("##teamcity[setParameter name='GitVersion.{0}' value='{1}']", name, ServiceMessageEscapeHelper.EscapeValue(value)),
34+
string.Format("##teamcity[setParameter name='system.GitVersion.{0}' value='{1}']", name, ServiceMessageEscapeHelper.EscapeValue(value))
3535
};
3636
}
3737

3838
public override string GenerateSetVersionMessage(string versionToUseForBuildNumber)
3939
{
40-
return string.Format("##teamcity[buildNumber '{0}']", EscapeValue(versionToUseForBuildNumber));
41-
}
42-
43-
static string EscapeValue(string value)
44-
{
45-
if (value == null)
46-
{
47-
return null;
48-
}
49-
// List of escape values from http://confluence.jetbrains.com/display/TCD8/Build+Script+Interaction+with+TeamCity
50-
51-
value = value.Replace("|", "||");
52-
value = value.Replace("'", "|'");
53-
value = value.Replace("[", "|[");
54-
value = value.Replace("]", "|]");
55-
value = value.Replace("\r", "|r");
56-
value = value.Replace("\n", "|n");
57-
58-
return value;
40+
return string.Format("##teamcity[buildNumber '{0}']", ServiceMessageEscapeHelper.EscapeValue(versionToUseForBuildNumber));
5941
}
6042
}
6143
}

GitVersionCore/Helpers/DeleteHelper.cs

+20
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22
{
33
using System.IO;
44

5+
public static class ServiceMessageEscapeHelper
6+
{
7+
public static string EscapeValue(string value)
8+
{
9+
if (value == null)
10+
{
11+
return null;
12+
}
13+
// List of escape values from http://confluence.jetbrains.com/display/TCD8/Build+Script+Interaction+with+TeamCity
14+
15+
value = value.Replace("|", "||");
16+
value = value.Replace("'", "|'");
17+
value = value.Replace("[", "|[");
18+
value = value.Replace("]", "|]");
19+
value = value.Replace("\r", "|r");
20+
value = value.Replace("\n", "|n");
21+
22+
return value;
23+
}
24+
}
525
public static class DeleteHelper
626
{
727
public static void DeleteGitRepository(string directory)

GitVersionTask.Tests/BuildServers/MyGetTests.cs

+9-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public void Develop_branch()
1010
var authentication = new Authentication();
1111
var versionBuilder = new MyGet(authentication);
1212
var message = versionBuilder.GenerateSetVersionMessage("0.0.0-Unstable4");
13-
Assert.AreEqual("##myget[buildNumber '0.0.0-Unstable4']", message);
13+
Assert.AreEqual(null, message);
1414
}
1515

1616
[Test]
@@ -22,4 +22,12 @@ public void EscapeValues()
2222
Assert.AreEqual("##myget[setParameter name='GitVersion.Foo' value='0.8.0-unstable568 Branch:|'develop|' Sha:|'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb|'']", message[0]);
2323
}
2424

25+
[Test]
26+
public void BuildNumber()
27+
{
28+
var authentication = new Authentication();
29+
var versionBuilder = new MyGet(authentication);
30+
var message = versionBuilder.GenerateSetParameterMessage("LegacySemVerPadded", "0.8.0-unstable568");
31+
Assert.AreEqual("##myget[buildNumber '0.8.0-unstable568']", message[1]);
32+
}
2533
}

0 commit comments

Comments
 (0)