diff --git a/build.cake b/build.cake
index 4c78335..9dc3918 100644
--- a/build.cake
+++ b/build.cake
@@ -6,22 +6,26 @@ var isPaketInstalled = FileExists(paketPath);
var target = Argument("target", "default");
Task("bootstrap-paket")
- .WithCriteria(!isPaketInstalled)
- .Does(() =>
+ .WithCriteria(!isPaketInstalled)
+ .Does(() =>
+ {
+ if (StartProcess(".paket/paket.bootstrapper.exe") != 0)
{
- if (StartProcess(".paket/paket.bootstrapper.exe") != 0)
- Error("Unable to fetch paket.exe");
+ Error("Unable to fetch paket.exe");
+ }
- paketPath = ".paket/paket.exe";
- });
+ paketPath = ".paket/paket.exe";
+ });
Task("paket-restore")
- .IsDependentOn("bootstrap-paket")
- .Does(() =>
+ .IsDependentOn("bootstrap-paket")
+ .Does(() =>
+ {
+ if (StartProcess(paketPath, "restore") != 0)
{
- if (StartProcess(paketPath, "restore") != 0)
- Error("Paket restore failed");
- });
+ Error("Paket restore failed");
+ }
+ });
Task("compile")
.IsDependentOn("paket-restore")
@@ -30,6 +34,15 @@ Task("compile")
MSBuild("./src/Cake.Parallel.sln");
});
+Task("compile-release")
+ .IsDependentOn("paket-restore")
+ .Does(() =>
+ {
+ MSBuild("./src/Cake.Parallel.sln", new MSBuildSettings {
+ Configuration = "Release"
+ });
+ });
+
Task("xUnit")
.IsDependentOn("compile")
.Does(() =>
diff --git a/paket.dependencies b/paket.dependencies
index b70e5d6..6279bef 100644
--- a/paket.dependencies
+++ b/paket.dependencies
@@ -1,7 +1,7 @@
framework: net461
source http://nuget.org/api/v2
-nuget Cake.Core 0.15.0
+nuget Cake.Core 0.19.1
nuget Cake.Testing
nuget Shouldly
-nuget xunit
\ No newline at end of file
+nuget xunit
diff --git a/paket.lock b/paket.lock
index 1b0a8b7..e7572ef 100644
--- a/paket.lock
+++ b/paket.lock
@@ -1,7 +1,7 @@
FRAMEWORK: NET461
NUGET
remote: http://www.nuget.org/api/v2
- Cake.Core (0.15)
+ Cake.Core (0.19.1)
Cake.Testing (0.15)
Cake.Core (>= 0.15)
Shouldly (2.8.2)
diff --git a/src/Cake.Parallel/Cake.Parallel.Module.csproj b/src/Cake.Parallel/Cake.Parallel.Module.csproj
index e2bf43d..54b3a40 100644
--- a/src/Cake.Parallel/Cake.Parallel.Module.csproj
+++ b/src/Cake.Parallel/Cake.Parallel.Module.csproj
@@ -46,6 +46,7 @@
+
diff --git a/src/Cake.Parallel/ParallelActionTaskExtensions.cs b/src/Cake.Parallel/ParallelActionTaskExtensions.cs
new file mode 100644
index 0000000..76a6904
--- /dev/null
+++ b/src/Cake.Parallel/ParallelActionTaskExtensions.cs
@@ -0,0 +1,12 @@
+using Cake.Core;
+
+namespace Cake.Parallel.Module
+{
+ public static class ParallelActionTaskExtensions
+ {
+ public static CakeTaskBuilder IgnoreCancellation(this CakeTaskBuilder task)
+ {
+ return task;
+ }
+ }
+}
diff --git a/src/Cake.Parallel/ParallelCakeEngine.cs b/src/Cake.Parallel/ParallelCakeEngine.cs
index 96be7a6..422f3ac 100644
--- a/src/Cake.Parallel/ParallelCakeEngine.cs
+++ b/src/Cake.Parallel/ParallelCakeEngine.cs
@@ -90,6 +90,7 @@ public CakeReport RunTarget(ICakeContext context, IExecutionStrategy strategy, s
var report = new CakeReport();
+
var targetTask = graph.Traverse(target, (taskName, cts) =>
{
if (cts.IsCancellationRequested) return;
@@ -120,6 +121,12 @@ public CakeReport RunTarget(ICakeContext context, IExecutionStrategy strategy, s
exceptionWasThrown = true;
throw;
}
+ catch(AggregateException ex)
+ {
+ exceptionWasThrown = true;
+ thrownException = ex.InnerException;
+ throw;
+ }
catch (Exception ex)
{
exceptionWasThrown = true;
@@ -142,11 +149,6 @@ public void RegisterTaskTeardownAction(Action action)
_taskTeardownAction = action;
}
- public event EventHandler Setup;
- public event EventHandler Teardown;
- public event EventHandler TaskSetup;
- public event EventHandler TaskTeardown;
-
private void performSetup(IExecutionStrategy strategy, ICakeContext context)
{
publishEvent(Setup, new SetupEventArgs(context));
@@ -225,6 +227,11 @@ private void executeTask(ICakeContext context, IExecutionStrategy strategy, Canc
{
strategy.Execute(task, context);
}
+ catch (TaskCanceledException)
+ {
+ execptionWasThrown = true;
+ throw;
+ }
catch (Exception exception)
{
execptionWasThrown = true;
@@ -346,46 +353,10 @@ public void performTaskTeardown(ICakeContext context, IExecutionStrategy strateg
}
}
- public IReadOnlyList Tasks { get; }
- }
-
- public class SetupEventArgs : EventArgs
- {
- public ICakeContext Context { get; }
-
- public SetupEventArgs(ICakeContext context)
- {
- Context = context;
- }
- }
-
- public class TeardownEventArgs : EventArgs
- {
- public ITeardownContext TeardownContext { get; }
-
- public TeardownEventArgs(ITeardownContext teardownContext)
- {
- TeardownContext = teardownContext;
- }
- }
-
- public class TaskSetupEventArgs : EventArgs
- {
- public ITaskSetupContext TaskSetupContext { get; }
-
- public TaskSetupEventArgs(ITaskSetupContext taskSetupContext)
- {
- TaskSetupContext = taskSetupContext;
- }
- }
-
- public class TaskTeardownEventArgs : EventArgs
- {
- public ITaskTeardownContext TaskTeardownContext { get; }
-
- public TaskTeardownEventArgs(ITaskTeardownContext taskTeardownContext)
- {
- TaskTeardownContext = taskTeardownContext;
- }
+ public IReadOnlyList Tasks => _tasks;
+ public event EventHandler Setup;
+ public event EventHandler Teardown;
+ public event EventHandler TaskSetup;
+ public event EventHandler TaskTeardown;
}
}
diff --git a/src/Cake.Parallel/ParallelCakeModule.cs b/src/Cake.Parallel/ParallelCakeModule.cs
index 2418005..5a9a2cd 100644
--- a/src/Cake.Parallel/ParallelCakeModule.cs
+++ b/src/Cake.Parallel/ParallelCakeModule.cs
@@ -5,9 +5,9 @@ namespace Cake.Parallel.Module
{
public class ParallelCakeModule : ICakeModule
{
- public void Register(ICakeContainerRegistry registry)
+ public void Register(ICakeContainerRegistrar registrar)
{
- registry.RegisterType().As().Singleton();
+ registrar.RegisterType().As().Singleton();
}
}
}