diff --git a/src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs b/src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs index e888f9aec8..580cd52d84 100644 --- a/src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs +++ b/src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs @@ -44,10 +44,5 @@ public override string[] GenerateSetParameterMessage(string name, string value) { return new string[0]; } - - public override string GetCurrentBranch() - { - throw new NotImplementedException(); - } } } \ No newline at end of file diff --git a/src/GitVersionCore/BuildServers/AppVeyor.cs b/src/GitVersionCore/BuildServers/AppVeyor.cs index 91fb9833ab..8d21861cbe 100644 --- a/src/GitVersionCore/BuildServers/AppVeyor.cs +++ b/src/GitVersionCore/BuildServers/AppVeyor.cs @@ -59,10 +59,5 @@ public override string[] GenerateSetParameterMessage(string name, string value) string.Format("Adding Environment Variable. name='GitVersion_{0}' value='{1}']", name, value) }; } - - public override string GetCurrentBranch() - { - return null; - } } } \ No newline at end of file diff --git a/src/GitVersionCore/BuildServers/BuildServerBase.cs b/src/GitVersionCore/BuildServers/BuildServerBase.cs index 2bc98a1483..f41c354fdd 100644 --- a/src/GitVersionCore/BuildServers/BuildServerBase.cs +++ b/src/GitVersionCore/BuildServers/BuildServerBase.cs @@ -7,7 +7,11 @@ public abstract class BuildServerBase : IBuildServer public abstract bool CanApplyToCurrentContext(); public abstract string GenerateSetVersionMessage(string versionToUseForBuildNumber); public abstract string[] GenerateSetParameterMessage(string name, string value); - public abstract string GetCurrentBranch(); + + public virtual string GetCurrentBranch() + { + return null; + } public virtual void WriteIntegration(Action writer, VersionVariables variables) { diff --git a/src/GitVersionCore/BuildServers/ContinuaCi.cs b/src/GitVersionCore/BuildServers/ContinuaCi.cs index dfefee8fef..1478fbd65e 100644 --- a/src/GitVersionCore/BuildServers/ContinuaCi.cs +++ b/src/GitVersionCore/BuildServers/ContinuaCi.cs @@ -29,8 +29,6 @@ public override string[] GenerateSetParameterMessage(string name, string value) }; } - public override string GetCurrentBranch() { return string.Empty; } - public override string GenerateSetVersionMessage(string versionToUseForBuildNumber) { return string.Format("@@continua[setBuildVersion value='{0}']", versionToUseForBuildNumber); diff --git a/src/GitVersionCore/BuildServers/Jenkins.cs b/src/GitVersionCore/BuildServers/Jenkins.cs index f1970312a8..d9608741f4 100644 --- a/src/GitVersionCore/BuildServers/Jenkins.cs +++ b/src/GitVersionCore/BuildServers/Jenkins.cs @@ -26,8 +26,6 @@ public override string GenerateSetVersionMessage(string versionToUseForBuildNumb return versionToUseForBuildNumber; } - public override string GetCurrentBranch() { return string.Empty; } - public override string[] GenerateSetParameterMessage(string name, string value) { return new[] diff --git a/src/GitVersionCore/BuildServers/MyGet.cs b/src/GitVersionCore/BuildServers/MyGet.cs index 2f4a1b7fcb..0b74e308e7 100644 --- a/src/GitVersionCore/BuildServers/MyGet.cs +++ b/src/GitVersionCore/BuildServers/MyGet.cs @@ -13,8 +13,6 @@ public override bool CanApplyToCurrentContext() && buildRunner.Equals("MyGet", StringComparison.InvariantCultureIgnoreCase); } - public override string GetCurrentBranch() { return string.Empty; } - public override string[] GenerateSetParameterMessage(string name, string value) { var messages = new List diff --git a/src/GitVersionCore/BuildServers/TeamCity.cs b/src/GitVersionCore/BuildServers/TeamCity.cs index ffb207bace..2140a886f8 100644 --- a/src/GitVersionCore/BuildServers/TeamCity.cs +++ b/src/GitVersionCore/BuildServers/TeamCity.cs @@ -9,8 +9,6 @@ public override bool CanApplyToCurrentContext() return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION")); } - public override string GetCurrentBranch() { return string.Empty; } - public override string[] GenerateSetParameterMessage(string name, string value) { return new[] diff --git a/src/GitVersionCore/ExecuteCore.cs b/src/GitVersionCore/ExecuteCore.cs index 06689d964e..9c40d3437d 100644 --- a/src/GitVersionCore/ExecuteCore.cs +++ b/src/GitVersionCore/ExecuteCore.cs @@ -12,12 +12,9 @@ public static VersionVariables ExecuteGitVersion(IFileSystem fileSystem, string var gitPreparer = new GitPreparer(targetUrl, dynamicRepositoryLocation, authentication, noFetch, workingDirectory); var applicableBuildServers = BuildServerList.GetApplicableBuildServers(); var buildServer = applicableBuildServers.FirstOrDefault(); - var currentBranch = buildServer == null ? null : buildServer.GetCurrentBranch(); - if (!string.IsNullOrEmpty(currentBranch)) - { - Logger.WriteInfo("Branch from build environment: " + currentBranch); - } - gitPreparer.Initialise(buildServer != null, currentBranch ?? targetBranch); + + gitPreparer.Initialise(buildServer != null, ResolveCurrentBranch(buildServer, targetBranch)); + var dotGitDirectory = gitPreparer.GetDotGitDirectory(); var projectRoot = gitPreparer.GetProjectRootDirectory(); Logger.WriteInfo(string.Format("Project root is: " + projectRoot)); @@ -40,5 +37,15 @@ public static VersionVariables ExecuteGitVersion(IFileSystem fileSystem, string return variables; } + + private static string ResolveCurrentBranch(IBuildServer buildServer, string targetBranch) + { + if (buildServer == null) return targetBranch; + + var currentBranch = buildServer.GetCurrentBranch() ?? targetBranch; + Logger.WriteInfo("Branch from build environment: " + currentBranch); + + return currentBranch; + } } } \ No newline at end of file