From e0059fc0fbeacb7de35988068c88299b1017fa05 Mon Sep 17 00:00:00 2001 From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com> Date: Tue, 21 Jul 2026 19:22:20 +0100 Subject: [PATCH] fix(ci): fail on broken examples Follow-up to #347 --- EnumerableAsyncProcessor.Example/DisposalExample.cs | 2 +- .../Modules/BuildExampleProjectsModule.cs | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/EnumerableAsyncProcessor.Example/DisposalExample.cs b/EnumerableAsyncProcessor.Example/DisposalExample.cs index c1769f4..1484137 100644 --- a/EnumerableAsyncProcessor.Example/DisposalExample.cs +++ b/EnumerableAsyncProcessor.Example/DisposalExample.cs @@ -76,7 +76,7 @@ private static async Task> ProblematicPatternAsync(int[] inpu } // 🔥 RESOURCE LEAK: The processor goes out of scope without being disposed, - // potentially leaving tasks running and resources uncleaned + // leaving its disposal resources uncleaned return results; } diff --git a/EnumerableAsyncProcessor.Pipeline/Modules/BuildExampleProjectsModule.cs b/EnumerableAsyncProcessor.Pipeline/Modules/BuildExampleProjectsModule.cs index 6ea0c59..0dd3f95 100644 --- a/EnumerableAsyncProcessor.Pipeline/Modules/BuildExampleProjectsModule.cs +++ b/EnumerableAsyncProcessor.Pipeline/Modules/BuildExampleProjectsModule.cs @@ -4,6 +4,7 @@ using ModularPipelines.Git.Extensions; using ModularPipelines.Models; using ModularPipelines.Modules; +using ModularPipelines.Options; namespace EnumerableAsyncProcessor.Pipeline.Modules; @@ -14,6 +15,10 @@ public class BuildExampleProjectsModule : Module> CancellationToken cancellationToken) { var results = new List(); + var executionOptions = new CommandExecutionOptions + { + ThrowOnNonZeroExitCode = true, + }; foreach (var exampleProjectFile in context .Git().RootDirectory @@ -24,7 +29,7 @@ public class BuildExampleProjectsModule : Module> { ProjectSolution = exampleProjectFile.Path, Configuration = "Release", - }, cancellationToken: cancellationToken)); + }, executionOptions: executionOptions, cancellationToken: cancellationToken)); } return results;