Skip to content

Commit cf0c89a

Browse files
committed
GH-1883, fix the NoFetch for GitVersionTask
1 parent cbed74a commit cf0c89a

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/GitVersionTask/GitVersionTasks.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using GitVersion.Extensions;
44
using GitVersion.Logging;
55
using GitVersion.MSBuildTask.Tasks;
6+
using Microsoft.Build.Utilities;
67
using Microsoft.Extensions.DependencyInjection;
78
using Microsoft.Extensions.Options;
89

@@ -25,8 +26,6 @@ private static bool ExecuteGitVersionTask<T>(T task, Action<IGitVersionTaskExecu
2526
try
2627
{
2728
var sp = BuildServiceProvider(task);
28-
var log = sp.GetService<ILog>();
29-
log.AddLogAppender(new MsBuildAppender(taskLog));
3029
var gitVersionTaskExecutor = sp.GetService<IGitVersionTaskExecutor>();
3130

3231
action(gitVersionTaskExecutor);
@@ -44,6 +43,17 @@ private static bool ExecuteGitVersionTask<T>(T task, Action<IGitVersionTaskExecu
4443

4544
return !taskLog.HasLoggedErrors;
4645
}
46+
47+
private static void Configure(IServiceProvider sp, Task task)
48+
{
49+
var log = sp.GetService<ILog>();
50+
var buildServerResolver = sp.GetService<IBuildServerResolver>();
51+
var arguments = sp.GetService<IOptions<Arguments>>().Value;
52+
53+
log.AddLogAppender(new MsBuildAppender(task.Log));
54+
var buildServer = buildServerResolver.Resolve();
55+
arguments.NoFetch = arguments.NoFetch || buildServer != null && buildServer.PreventFetch();
56+
}
4757

4858
private static IServiceProvider BuildServiceProvider(GitVersionTaskBase task)
4959
{
@@ -61,6 +71,8 @@ private static IServiceProvider BuildServiceProvider(GitVersionTaskBase task)
6171
services.AddModule(new GitVersionCoreModule());
6272

6373
var sp = services.BuildServiceProvider();
74+
Configure(sp, task);
75+
6476
return sp;
6577
}
6678
}

0 commit comments

Comments
 (0)