|
6 | 6 | public class TeamCity
|
7 | 7 | {
|
8 | 8 | public static string GenerateBuildVersion(VersionAndBranch versionAndBranch)
|
| 9 | + { |
| 10 | + var versionString = CreateVersionString(versionAndBranch); |
| 11 | + |
| 12 | + return string.Format("##teamcity[buildNumber '{0}']", versionString); |
| 13 | + } |
| 14 | + |
| 15 | + static string CreateVersionString(VersionAndBranch versionAndBranch,bool padPreReleaseNumber = false) |
9 | 16 | {
|
10 | 17 | var prereleaseString = "";
|
11 | 18 |
|
12 | 19 | if (versionAndBranch.Version.Stability != Stability.Final)
|
13 | 20 | {
|
14 |
| - switch (versionAndBranch.BranchType ) |
| 21 | + var preReleaseNumber = versionAndBranch.Version.PreReleaseNumber.ToString(); |
| 22 | + |
| 23 | + if (padPreReleaseNumber) |
| 24 | + { |
| 25 | + preReleaseNumber = versionAndBranch.Version.PreReleaseNumber.Value.ToString("D4"); |
| 26 | + } |
| 27 | + |
| 28 | + switch (versionAndBranch.BranchType) |
15 | 29 | {
|
16 |
| - case BranchType.Develop: |
17 |
| - prereleaseString = "-" + versionAndBranch.Version.Stability + versionAndBranch.Version.PreReleaseNumber; |
| 30 | + case BranchType.Develop: |
| 31 | + prereleaseString = "-" + versionAndBranch.Version.Stability + preReleaseNumber; |
18 | 32 | break;
|
19 | 33 |
|
20 |
| - case BranchType.Release: |
21 |
| - prereleaseString = "-" + versionAndBranch.Version.Stability + versionAndBranch.Version.PreReleaseNumber; |
| 34 | + case BranchType.Release: |
| 35 | + prereleaseString = "-" + versionAndBranch.Version.Stability + preReleaseNumber; |
22 | 36 | break;
|
23 | 37 |
|
24 |
| - case BranchType.Hotfix: |
25 |
| - prereleaseString = "-" + versionAndBranch.Version.Stability + versionAndBranch.Version.PreReleaseNumber; |
| 38 | + case BranchType.Hotfix: |
| 39 | + prereleaseString = "-" + versionAndBranch.Version.Stability + preReleaseNumber; |
26 | 40 | break;
|
27 |
| - case BranchType.PullRequest: |
| 41 | + case BranchType.PullRequest: |
28 | 42 | prereleaseString = "-PullRequest-" + versionAndBranch.Version.Suffix;
|
29 | 43 | break;
|
30 |
| - case BranchType.Feature: |
| 44 | + case BranchType.Feature: |
31 | 45 | prereleaseString = "-Feature-" + versionAndBranch.BranchName + "-" + versionAndBranch.Sha;
|
32 | 46 | break;
|
33 | 47 | }
|
34 |
| - |
35 | 48 | }
|
36 |
| - |
37 |
| - return string.Format("##teamcity[buildNumber '{0}.{1}.{2}{3}']", versionAndBranch.Version.Major, versionAndBranch.Version.Minor, versionAndBranch.Version.Patch, prereleaseString); |
| 49 | + return string.Format("{0}.{1}.{2}{3}",versionAndBranch.Version.Major, versionAndBranch.Version.Minor, versionAndBranch.Version.Patch, prereleaseString); |
38 | 50 | }
|
39 | 51 |
|
40 | 52 |
|
@@ -71,14 +83,21 @@ public static int CurrentPullRequestNo()
|
71 | 83 |
|
72 | 84 | public static IEnumerable<string> GenerateBuildLogOutput(VersionAndBranch versionAndBranch)
|
73 | 85 | {
|
74 |
| - yield return GenerateBuildVersion(versionAndBranch); |
75 | 86 | var semanticVersion = versionAndBranch.Version;
|
| 87 | + |
| 88 | + yield return GenerateBuildVersion(versionAndBranch); |
76 | 89 | yield return GenerateBuildParameter("Major", semanticVersion.Major.ToString());
|
77 | 90 | yield return GenerateBuildParameter("Minor", semanticVersion.Minor.ToString());
|
78 | 91 | yield return GenerateBuildParameter("Patch", semanticVersion.Patch.ToString());
|
79 | 92 | yield return GenerateBuildParameter("Stability", semanticVersion.Stability.ToString());
|
80 | 93 | yield return GenerateBuildParameter("PreReleaseNumber", semanticVersion.PreReleaseNumber.ToString());
|
| 94 | + yield return GenerateBuildParameter("Version", CreateVersionString(versionAndBranch)); |
| 95 | + yield return GenerateBuildParameter("NugetVersion", GenerateNugetVersion(versionAndBranch)); |
| 96 | + } |
81 | 97 |
|
| 98 | + public static string GenerateNugetVersion(VersionAndBranch versionAndBranch) |
| 99 | + { |
| 100 | + return CreateVersionString(versionAndBranch, true); |
82 | 101 | }
|
83 | 102 |
|
84 | 103 | static string GenerateBuildParameter(string name, string value)
|
|
0 commit comments