Skip to content

Commit 3d4521c

Browse files
committed
ci: build benchmarks in pipeline (#353)
1 parent 1e9a0b8 commit 3d4521c

3 files changed

Lines changed: 40 additions & 1 deletion

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using ModularPipelines.Context;
2+
using ModularPipelines.DotNet.Extensions;
3+
using ModularPipelines.DotNet.Options;
4+
using ModularPipelines.Git.Extensions;
5+
using ModularPipelines.Models;
6+
using ModularPipelines.Modules;
7+
using ModularPipelines.Options;
8+
9+
namespace EnumerableAsyncProcessor.Pipeline.Modules;
10+
11+
public class BuildBenchmarkProjectsModule : Module<List<CommandResult>>
12+
{
13+
protected override async Task<List<CommandResult>?> ExecuteAsync(
14+
IModuleContext context,
15+
CancellationToken cancellationToken)
16+
{
17+
var results = new List<CommandResult>();
18+
var executionOptions = new CommandExecutionOptions
19+
{
20+
ThrowOnNonZeroExitCode = true,
21+
};
22+
23+
foreach (var benchmarkProjectFile in context
24+
.Git().RootDirectory
25+
.GetFiles(file => file.Path.EndsWith(".csproj", StringComparison.OrdinalIgnoreCase)
26+
&& file.Path.Contains("Benchmarks", StringComparison.OrdinalIgnoreCase)))
27+
{
28+
results.Add(await context.DotNet().Build(new DotNetBuildOptions
29+
{
30+
ProjectSolution = benchmarkProjectFile.Path,
31+
Configuration = "Release",
32+
}, executionOptions: executionOptions, cancellationToken: cancellationToken).ConfigureAwait(false));
33+
}
34+
35+
return results;
36+
}
37+
}

EnumerableAsyncProcessor.Pipeline/Modules/PackProjectsModule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace EnumerableAsyncProcessor.Pipeline.Modules;
1313
[DependsOn<PackageFilesRemovalModule>]
1414
[DependsOn<NugetVersionGeneratorModule>]
1515
[DependsOn<RunUnitTestsModule>]
16+
[DependsOn<BuildBenchmarkProjectsModule>]
1617
[DependsOn<BuildExampleProjectsModule>]
1718
public class PackProjectsModule : Module<List<CommandResult>>
1819
{

EnumerableAsyncProcessor.Pipeline/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
builder.AddModule<UploadPackagesToNugetModule>();
2727
}
2828

29-
builder.AddModule<BuildExampleProjectsModule>()
29+
builder.AddModule<BuildBenchmarkProjectsModule>()
30+
.AddModule<BuildExampleProjectsModule>()
3031
.AddModule<RunUnitTestsModule>()
3132
.AddModule<NugetVersionGeneratorModule>()
3233
.AddModule<PackProjectsModule>()

0 commit comments

Comments
 (0)