ModularPipelines.Azure.Pipelines
2.13.47
Prefix Reserved
See the version list below for details.
dotnet add package ModularPipelines.Azure.Pipelines --version 2.13.47
NuGet\Install-Package ModularPipelines.Azure.Pipelines -Version 2.13.47
<PackageReference Include="ModularPipelines.Azure.Pipelines" Version="2.13.47" />
paket add ModularPipelines.Azure.Pipelines --version 2.13.47
#r "nuget: ModularPipelines.Azure.Pipelines, 2.13.47"
// Install ModularPipelines.Azure.Pipelines as a Cake Addin #addin nuget:?package=ModularPipelines.Azure.Pipelines&version=2.13.47 // Install ModularPipelines.Azure.Pipelines as a Cake Tool #tool nuget:?package=ModularPipelines.Azure.Pipelines&version=2.13.47
ModularPipelines
Define your pipeline in .NET! Strong types, intellisense, parallelisation, and the entire .NET ecosystem at your fingertips.
Features
- Parallel execution
- Dependency management
- Familiar C# code
- Ability to debug pipelines
- Ability to run pipelines locally, even creating versions for setting up local development
- Strong typing, where different modules/steps can pass data to one another
- Dependency collision detection - Don't worry about accidentally making two modules dependent on each other
- Numerous helpers to do things like: Search files, check checksums, (un)zip folders, download files, install files, execute CLI commands, hash data, and more
- Easy to Skip or Ignore Failures for each individual module by passing in custom logic
- Hooks that can run before and/or after modules
- Pipeline requirements - Validate your requirements are met before executing your pipeline, such as a Linux operating system
- Easy to use File and Folder classes, that can search, read, update, delete and more
- Source controlled pipelines
- Build agent agnostic - Can easily move to a different build system without completely recreating your pipeline
- No need to learn new syntaxes such as YAML defined pipelines
- Strongly typed wrappers around command line tools
- Utilise existing .NET libraries
- Secret obfuscation
- Grouped logging, and the ability to extend sources by adding to the familiar
ILogger
- Run based on categories
- Easy to read exceptions
- Dynamic console progress reporting (if the console supports interactive mode)
- Pretty results table
Available Modules
Getting Started
If you want to see how to get started, or want to know more about ModularPipelines, read the Documentation here
Console Progress
Results
<img width="444" alt="image" src="https://github.com/thomhurst/ModularPipelines/assets/30480171/8963e891-2c29-4382-9a3e-6ced4daf4d4b">
Code Examples
Program.cs - Main method
await PipelineHostBuilder.Create()
.ConfigureAppConfiguration((context, builder) =>
{
builder.AddJsonFile("appsettings.json")
.AddUserSecrets<Program>()
.AddEnvironmentVariables();
})
.ConfigureServices((context, collection) =>
{
collection.Configure<NuGetSettings>(context.Configuration.GetSection("NuGet"));
collection.Configure<PublishSettings>(context.Configuration.GetSection("Publish"));
collection.AddSingleton<ISomeService1, SomeService1>();
collection.AddTransient<ISomeService2, SomeService2>();
})
.AddModule<FindNugetPackagesModule>()
.AddModule<UploadNugetPackagesModule>()
.ExecutePipelineAsync();
Custom Modules
public class FindNugetPackagesModule : Module<FileInfo>
{
protected override Task<List<File>?> ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
{
return context.Git()
.RootDirectory
.GetFiles(path => path.Extension is ".nupkg")
.ToList()
.AsTask();
}
}
[DependsOn<FindNugetPackagesModule>]
public class UploadNugetPackagesModule : Module<FileInfo>
{
private readonly IOptions<NuGetSettings> _nugetSettings;
public UploadNugetPackagesModule(IOptions<NuGetSettings> nugetSettings)
{
_nugetSettings = nugetSettings;
}
protected override async Task<CommandResult?> ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
{
var nugetFiles = await GetModule<FindNugetPackagesModule>();
return await context.NuGet()
.UploadPackages(new NuGetUploadOptions(nugetFiles.Value!.AsPaths(), new Uri("https://api.nuget.org/v3/index.json"))
{
ApiKey = _nugetSettings.Value.ApiKey
});
}
}
Breaking changes
While I will try to limit breaking changes, there may be some changes within minor versions. These will be noted on release notes.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- ModularPipelines (>= 2.13.47)
-
net7.0
- ModularPipelines (>= 2.13.47)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.42.115 | 69 | 11/17/2024 |
2.42.87 | 99 | 10/28/2024 |
2.42.67 | 94 | 9/29/2024 |
2.42.59 | 90 | 9/19/2024 |
2.42.54 | 85 | 9/19/2024 |
2.42.53 | 81 | 9/19/2024 |
2.42.47 | 96 | 9/13/2024 |
2.42.45 | 95 | 9/12/2024 |
2.42.9 | 101 | 9/5/2024 |
2.42.8 | 95 | 9/4/2024 |
2.42.0 | 99 | 9/4/2024 |
2.41.4 | 97 | 9/3/2024 |
2.41.0 | 104 | 9/3/2024 |
2.40.18 | 97 | 9/2/2024 |
2.40.15 | 95 | 9/2/2024 |
2.40.10 | 97 | 9/2/2024 |
2.40.8 | 90 | 9/2/2024 |
2.40.4 | 83 | 8/29/2024 |
2.40.1 | 99 | 8/28/2024 |
2.38.36 | 97 | 8/26/2024 |
2.38.25 | 114 | 8/12/2024 |
2.38.2 | 74 | 7/27/2024 |
2.38.1 | 83 | 7/27/2024 |
2.37.9 | 95 | 7/14/2024 |
2.36.29 | 102 | 7/5/2024 |
2.36.23 | 97 | 6/30/2024 |
2.36.4 | 95 | 6/7/2024 |
2.35.0 | 94 | 6/2/2024 |
2.34.0 | 110 | 5/23/2024 |
2.33.0 | 109 | 5/20/2024 |
2.32.0 | 113 | 5/17/2024 |
2.31.3 | 127 | 4/15/2024 |
2.31.0 | 117 | 4/15/2024 |
2.30.9 | 130 | 3/27/2024 |
2.30.5 | 119 | 3/26/2024 |
2.30.3 | 147 | 3/26/2024 |
2.29.32 | 142 | 3/26/2024 |
2.29.22 | 184 | 3/8/2024 |
2.29.15 | 250 | 3/1/2024 |
2.29.11 | 194 | 2/27/2024 |
2.29.9 | 220 | 2/26/2024 |
2.29.0 | 229 | 2/25/2024 |
2.28.0 | 223 | 2/23/2024 |
2.27.12 | 195 | 2/15/2024 |
2.27.9 | 240 | 2/14/2024 |
2.27.3 | 255 | 2/8/2024 |
2.27.0 | 245 | 2/8/2024 |
2.26.8 | 235 | 2/4/2024 |
2.26.0 | 241 | 1/29/2024 |
2.25.0 | 270 | 1/28/2024 |
2.24.9 | 283 | 1/25/2024 |
2.24.4 | 232 | 1/25/2024 |
2.24.1 | 294 | 1/22/2024 |
2.22.0 | 290 | 1/18/2024 |
2.21.12 | 266 | 1/18/2024 |
2.21.9 | 301 | 1/18/2024 |
2.21.4 | 300 | 1/13/2024 |
2.21.0 | 292 | 1/12/2024 |
2.20.2 | 271 | 1/11/2024 |
2.19.2 | 381 | 12/27/2023 |
2.19.0 | 312 | 12/26/2023 |
2.18.8 | 289 | 12/26/2023 |
2.18.0 | 346 | 12/24/2023 |
2.17.25 | 348 | 12/22/2023 |
2.17.20 | 438 | 12/5/2023 |
2.17.0 | 424 | 11/24/2023 |
2.16.2 | 431 | 11/23/2023 |
2.16.0 | 376 | 11/23/2023 |
2.15.24 | 359 | 11/22/2023 |
2.15.21 | 416 | 11/22/2023 |
2.15.17 | 373 | 11/20/2023 |
2.15.3 | 415 | 11/9/2023 |
2.15.0 | 315 | 11/8/2023 |
2.14.9 | 360 | 11/6/2023 |
2.14.7 | 413 | 11/6/2023 |
2.14.1 | 392 | 11/6/2023 |
2.13.63 | 395 | 10/29/2023 |
2.13.47 | 409 | 10/20/2023 |
2.13.8 | 377 | 10/13/2023 |
2.13.5 | 412 | 10/13/2023 |
2.12.15 | 384 | 10/10/2023 |
2.12.11 | 475 | 10/10/2023 |
2.12.5 | 451 | 10/6/2023 |
2.12.1 | 409 | 10/4/2023 |
2.11.12 | 414 | 10/1/2023 |
2.11.11 | 381 | 9/30/2023 |
2.11.9 | 452 | 9/30/2023 |
2.11.4 | 462 | 9/30/2023 |
2.11.0 | 479 | 9/29/2023 |
2.10.6 | 406 | 9/29/2023 |
2.10.0 | 422 | 9/28/2023 |
2.9.0 | 408 | 9/28/2023 |
2.8.23 | 404 | 9/26/2023 |
2.8.12 | 428 | 9/24/2023 |
2.8.4 | 439 | 9/24/2023 |
2.8.0 | 419 | 9/24/2023 |
2.7.10 | 460 | 9/23/2023 |
2.7.6 | 423 | 9/22/2023 |
2.6.0 | 444 | 9/19/2023 |
2.5.11 | 397 | 9/16/2023 |
2.5.5 | 408 | 9/14/2023 |
2.5.2 | 441 | 9/14/2023 |
2.5.0 | 406 | 9/14/2023 |
2.4.0 | 404 | 9/12/2023 |
2.3.2 | 450 | 9/11/2023 |
2.3.0 | 438 | 9/11/2023 |
2.2.0 | 412 | 9/11/2023 |
2.0.8 | 543 | 9/7/2023 |
2.0.5 | 482 | 9/6/2023 |
2.0.0 | 482 | 9/6/2023 |
1.9.38 | 468 | 9/5/2023 |
1.9.36 | 434 | 9/5/2023 |
1.9.35 | 438 | 9/4/2023 |
1.9.31 | 402 | 9/4/2023 |
1.9.28 | 463 | 9/4/2023 |
1.9.22 | 497 | 9/3/2023 |
1.9.17 | 537 | 9/3/2023 |
1.9.15 | 486 | 9/3/2023 |
1.9.8 | 489 | 9/1/2023 |
1.9.6 | 526 | 9/1/2023 |
1.9.4 | 467 | 9/1/2023 |
1.9.1 | 431 | 8/31/2023 |
1.8.22 | 469 | 8/29/2023 |
1.8.18 | 478 | 8/29/2023 |
1.8.8 | 518 | 8/24/2023 |
1.8.6 | 445 | 8/24/2023 |
1.7.0 | 503 | 8/22/2023 |
1.6.3 | 460 | 8/17/2023 |
1.6.2 | 535 | 8/17/2023 |
1.6.1 | 512 | 8/17/2023 |
1.6.0 | 525 | 8/17/2023 |
1.5.5 | 494 | 8/15/2023 |
1.5.0 | 520 | 8/14/2023 |
1.4.34 | 523 | 8/11/2023 |
1.4.33 | 473 | 8/11/2023 |
1.4.31 | 537 | 8/11/2023 |
1.4.29 | 519 | 8/10/2023 |
1.4.22 | 568 | 8/10/2023 |
1.4.21 | 520 | 8/10/2023 |
1.4.20 | 510 | 8/10/2023 |
1.4.18 | 506 | 8/7/2023 |
1.4.17 | 555 | 8/7/2023 |
1.4.15 | 486 | 8/7/2023 |
1.4.14 | 611 | 8/2/2023 |
1.4.12 | 501 | 8/2/2023 |
1.4.11 | 554 | 7/19/2023 |
1.4.10 | 632 | 7/19/2023 |
1.4.9 | 539 | 7/18/2023 |
1.4.8 | 514 | 7/18/2023 |
1.4.6 | 571 | 7/13/2023 |
1.4.5 | 523 | 7/11/2023 |
1.4.4 | 530 | 7/10/2023 |
1.4.3 | 542 | 7/10/2023 |
1.4.2 | 557 | 7/7/2023 |
1.4.1 | 466 | 7/6/2023 |
1.4.0 | 559 | 7/6/2023 |
1.3.17 | 573 | 7/5/2023 |
1.3.15 | 648 | 7/5/2023 |
1.3.14 | 487 | 7/5/2023 |
1.3.13 | 593 | 7/5/2023 |
1.3.12 | 647 | 6/30/2023 |
1.3.11 | 496 | 6/30/2023 |
1.3.8 | 526 | 6/30/2023 |
1.3.7 | 551 | 6/30/2023 |
1.3.6 | 599 | 6/30/2023 |
1.3.5 | 536 | 6/30/2023 |
1.3.4 | 517 | 6/30/2023 |
1.3.3 | 464 | 6/29/2023 |
1.3.2 | 602 | 6/29/2023 |
1.3.1 | 556 | 6/29/2023 |
1.3.0 | 556 | 6/29/2023 |
1.2.0 | 590 | 6/29/2023 |
1.1.0 | 618 | 6/29/2023 |
1.0.1 | 547 | 6/29/2023 |
0.3.26 | 567 | 6/29/2023 |
0.2.0 | 614 | 6/29/2023 |
0.1.1-initial-2-0027 | 509 | 6/8/2023 |
0.1.1-initial-2-0025 | 505 | 6/8/2023 |
0.1.1-initial-2-0024 | 507 | 6/8/2023 |
0.1.0 | 565 | 6/28/2023 |
0.1.0-initial-2-19 | 519 | 6/8/2023 |
0.1.0-initial-2-17 | 492 | 6/8/2023 |
0.1.0-initial-2-16 | 551 | 6/8/2023 |
0.1.0-initial-2-0023 | 458 | 6/8/2023 |