Skip to content

Commit 93e36a9

Browse files
committed
Merge pull request #612 from Philo/feature/dynamic-repo-branch-teamcity
re #611 - Ensures branch with dynamic repositories and buildserver
2 parents 29f2362 + 628cb99 commit 93e36a9

File tree

8 files changed

+18
-25
lines changed

8 files changed

+18
-25
lines changed

src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,5 @@ public override string[] GenerateSetParameterMessage(string name, string value)
4444
{
4545
return new string[0];
4646
}
47-
48-
public override string GetCurrentBranch()
49-
{
50-
throw new NotImplementedException();
51-
}
5247
}
5348
}

src/GitVersionCore/BuildServers/AppVeyor.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,5 @@ public override string[] GenerateSetParameterMessage(string name, string value)
5959
string.Format("Adding Environment Variable. name='GitVersion_{0}' value='{1}']", name, value)
6060
};
6161
}
62-
63-
public override string GetCurrentBranch()
64-
{
65-
return null;
66-
}
6762
}
6863
}

src/GitVersionCore/BuildServers/BuildServerBase.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ public abstract class BuildServerBase : IBuildServer
77
public abstract bool CanApplyToCurrentContext();
88
public abstract string GenerateSetVersionMessage(string versionToUseForBuildNumber);
99
public abstract string[] GenerateSetParameterMessage(string name, string value);
10-
public abstract string GetCurrentBranch();
10+
11+
public virtual string GetCurrentBranch()
12+
{
13+
return null;
14+
}
1115

1216
public virtual void WriteIntegration(Action<string> writer, VersionVariables variables)
1317
{

src/GitVersionCore/BuildServers/ContinuaCi.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ public override string[] GenerateSetParameterMessage(string name, string value)
2929
};
3030
}
3131

32-
public override string GetCurrentBranch() { return string.Empty; }
33-
3432
public override string GenerateSetVersionMessage(string versionToUseForBuildNumber)
3533
{
3634
return string.Format("@@continua[setBuildVersion value='{0}']", versionToUseForBuildNumber);

src/GitVersionCore/BuildServers/Jenkins.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public override string GenerateSetVersionMessage(string versionToUseForBuildNumb
2626
return versionToUseForBuildNumber;
2727
}
2828

29-
public override string GetCurrentBranch() { return string.Empty; }
30-
3129
public override string[] GenerateSetParameterMessage(string name, string value)
3230
{
3331
return new[]

src/GitVersionCore/BuildServers/MyGet.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ public override bool CanApplyToCurrentContext()
1313
&& buildRunner.Equals("MyGet", StringComparison.InvariantCultureIgnoreCase);
1414
}
1515

16-
public override string GetCurrentBranch() { return string.Empty; }
17-
1816
public override string[] GenerateSetParameterMessage(string name, string value)
1917
{
2018
var messages = new List<string>

src/GitVersionCore/BuildServers/TeamCity.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ public override bool CanApplyToCurrentContext()
99
return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION"));
1010
}
1111

12-
public override string GetCurrentBranch() { return string.Empty; }
13-
1412
public override string[] GenerateSetParameterMessage(string name, string value)
1513
{
1614
return new[]

src/GitVersionCore/ExecuteCore.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ public static VersionVariables ExecuteGitVersion(IFileSystem fileSystem, string
1212
var gitPreparer = new GitPreparer(targetUrl, dynamicRepositoryLocation, authentication, noFetch, workingDirectory);
1313
var applicableBuildServers = BuildServerList.GetApplicableBuildServers();
1414
var buildServer = applicableBuildServers.FirstOrDefault();
15-
var currentBranch = buildServer == null ? null : buildServer.GetCurrentBranch();
16-
if (!string.IsNullOrEmpty(currentBranch))
17-
{
18-
Logger.WriteInfo("Branch from build environment: " + currentBranch);
19-
}
20-
gitPreparer.Initialise(buildServer != null, currentBranch ?? targetBranch);
15+
16+
gitPreparer.Initialise(buildServer != null, ResolveCurrentBranch(buildServer, targetBranch));
17+
2118
var dotGitDirectory = gitPreparer.GetDotGitDirectory();
2219
var projectRoot = gitPreparer.GetProjectRootDirectory();
2320
Logger.WriteInfo(string.Format("Project root is: " + projectRoot));
@@ -40,5 +37,15 @@ public static VersionVariables ExecuteGitVersion(IFileSystem fileSystem, string
4037

4138
return variables;
4239
}
40+
41+
private static string ResolveCurrentBranch(IBuildServer buildServer, string targetBranch)
42+
{
43+
if (buildServer == null) return targetBranch;
44+
45+
var currentBranch = buildServer.GetCurrentBranch() ?? targetBranch;
46+
Logger.WriteInfo("Branch from build environment: " + currentBranch);
47+
48+
return currentBranch;
49+
}
4350
}
4451
}

0 commit comments

Comments
 (0)