ModularPipelines.NuGet 2.12.15

Prefix Reserved
Suggested Alternatives

ModularPipelines.DotNet

Additional Details

NuGet CLI commands are now part of the dotnet CLI. Use `DotNet().Nuget` in your code to access `dotnet nuget` commands.

There is a newer version of this package available.
See the version list below for details.
dotnet add package ModularPipelines.NuGet --version 2.12.15                
NuGet\Install-Package ModularPipelines.NuGet -Version 2.12.15                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ModularPipelines.NuGet" Version="2.12.15" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ModularPipelines.NuGet --version 2.12.15                
#r "nuget: ModularPipelines.NuGet, 2.12.15"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ModularPipelines.NuGet as a Cake Addin
#addin nuget:?package=ModularPipelines.NuGet&version=2.12.15

// Install ModularPipelines.NuGet as a Cake Tool
#tool nuget:?package=ModularPipelines.NuGet&version=2.12.15                

ModularPipelines

Define your pipeline in .NET! Strong types, intellisense, parallelisation, and the entire .NET ecosystem at your fingertips.

nuget

Nuget GitHub Workflow Status (with event) GitHub last commit (branch) Codacy Badge CodeFactor License Codacy Badge codecov

Features

  • Parallel execution with easy waiting on dependencies if necessary
  • 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
  • Dynamic console progress reporting (if the console supports interactive mode)

Available Modules

Package Description Version
ModularPipelines The base package for Modular Pipelines. This contains the framework for building, executing, controlling and reporting your modules. nuget
ModularPipelines.AmazonWebServices Helpers for interacting with Amazon Web Services. nuget
ModularPipelines.Azure Helpers for interacting with Azure. nuget
ModularPipelines.Azure.Pipelines Helpers for interacting with Azure Pipeline agents. nuget
ModularPipelines.Cmd Helpers for interacting with the Windows cmd process. nuget
ModularPipelines.Docker Helpers for interacting with the Docker CLI. nuget
ModularPipelines.DotNet Helpers for interacting with dotnet CLI. nuget
ModularPipelines.Email Helpers for sending emails. nuget
ModularPipelines.Ftp Helpers for downloading and uploading via FTP. nuget
ModularPipelines.Git Helpers for interacting with git. nuget
ModularPipelines.GitHub Helpers for interacting with GitHub Actions build agents. nuget
ModularPipelines.Helm Helpers for interacting with Helm CLI. nuget
ModularPipelines.Kubernetes Helpers for interacting with kubectl CLI. nuget
ModularPipelines.MicrosoftTeams Helpers for sending Microsoft Teams cards. nuget
ModularPipelines.Node Helpers for interacting with node / npm CLI. nuget
ModularPipelines.NuGet Helpers for interacting with dotnet nuget CLI. nuget
ModularPipelines.Slack Helpers for sending Slack cards. nuget
ModularPipelines.TeamCity Helpers for interacting with TeamCity build agents. nuget
ModularPipelines.Terraform Helpers for interacting with Terraform CLI. nuget

Getting Started

If you want to see how to get started, or want to know more about ModularPipelines, read the Wiki page here

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.22.0 426 1/18/2024 2.22.0 is deprecated because it is no longer maintained.
2.21.12 131 1/18/2024 2.21.12 is deprecated because it is no longer maintained.
2.21.9 156 1/18/2024 2.21.9 is deprecated because it is no longer maintained.
2.21.4 176 1/13/2024 2.21.4 is deprecated because it is no longer maintained.
2.21.0 110 1/12/2024 2.21.0 is deprecated because it is no longer maintained.
2.20.2 165 1/11/2024 2.20.2 is deprecated because it is no longer maintained.
2.19.2 208 12/27/2023 2.19.2 is deprecated because it is no longer maintained.
2.19.0 224 12/26/2023 2.19.0 is deprecated because it is no longer maintained.
2.18.8 140 12/26/2023 2.18.8 is deprecated because it is no longer maintained.
2.18.0 213 12/24/2023 2.18.0 is deprecated because it is no longer maintained.
2.17.25 152 12/22/2023 2.17.25 is deprecated because it is no longer maintained.
2.17.20 248 12/5/2023 2.17.20 is deprecated because it is no longer maintained.
2.17.0 260 11/24/2023 2.17.0 is deprecated because it is no longer maintained.
2.16.2 160 11/23/2023 2.16.2 is deprecated because it is no longer maintained.
2.16.0 155 11/23/2023 2.16.0 is deprecated because it is no longer maintained.
2.15.24 135 11/22/2023 2.15.24 is deprecated because it is no longer maintained.
2.15.21 147 11/22/2023 2.15.21 is deprecated because it is no longer maintained.
2.15.17 159 11/20/2023 2.15.17 is deprecated because it is no longer maintained.
2.15.3 210 11/9/2023 2.15.3 is deprecated because it is no longer maintained.
2.15.0 124 11/8/2023 2.15.0 is deprecated because it is no longer maintained.
2.14.9 197 11/6/2023 2.14.9 is deprecated because it is no longer maintained.
2.14.7 151 11/6/2023 2.14.7 is deprecated because it is no longer maintained.
2.14.1 153 11/6/2023 2.14.1 is deprecated because it is no longer maintained.
2.13.63 188 10/29/2023 2.13.63 is deprecated because it is no longer maintained.
2.13.47 235 10/20/2023 2.13.47 is deprecated because it is no longer maintained.
2.13.8 172 10/13/2023 2.13.8 is deprecated because it is no longer maintained.
2.13.5 172 10/13/2023 2.13.5 is deprecated because it is no longer maintained.
2.12.15 161 10/10/2023 2.12.15 is deprecated because it is no longer maintained.
2.12.11 162 10/10/2023 2.12.11 is deprecated because it is no longer maintained.
2.12.5 176 10/6/2023 2.12.5 is deprecated because it is no longer maintained.
2.12.1 174 10/4/2023 2.12.1 is deprecated because it is no longer maintained.
2.11.12 184 10/1/2023 2.11.12 is deprecated because it is no longer maintained.
2.11.11 164 9/30/2023 2.11.11 is deprecated because it is no longer maintained.
2.11.9 161 9/30/2023 2.11.9 is deprecated because it is no longer maintained.
2.11.4 177 9/30/2023 2.11.4 is deprecated because it is no longer maintained.
2.11.0 165 9/29/2023 2.11.0 is deprecated because it is no longer maintained.
2.10.6 260 9/29/2023 2.10.6 is deprecated because it is no longer maintained.
2.10.0 152 9/28/2023 2.10.0 is deprecated because it is no longer maintained.
2.9.0 161 9/28/2023 2.9.0 is deprecated because it is no longer maintained.
2.8.23 169 9/26/2023 2.8.23 is deprecated because it is no longer maintained.
2.8.12 176 9/24/2023 2.8.12 is deprecated because it is no longer maintained.
2.8.4 150 9/24/2023 2.8.4 is deprecated because it is no longer maintained.
2.8.0 161 9/24/2023 2.8.0 is deprecated because it is no longer maintained.
2.7.10 163 9/23/2023 2.7.10 is deprecated because it is no longer maintained.
2.7.6 155 9/22/2023 2.7.6 is deprecated because it is no longer maintained.
2.6.0 147 9/19/2023 2.6.0 is deprecated because it is no longer maintained.
2.5.11 164 9/16/2023 2.5.11 is deprecated because it is no longer maintained.
2.5.5 178 9/14/2023 2.5.5 is deprecated because it is no longer maintained.
2.5.2 182 9/14/2023 2.5.2 is deprecated because it is no longer maintained.
2.5.0 153 9/14/2023 2.5.0 is deprecated because it is no longer maintained.
2.4.0 163 9/12/2023 2.4.0 is deprecated because it is no longer maintained.
2.3.2 164 9/11/2023 2.3.2 is deprecated because it is no longer maintained.
2.3.0 162 9/11/2023 2.3.0 is deprecated because it is no longer maintained.
2.2.0 172 9/11/2023 2.2.0 is deprecated because it is no longer maintained.
2.0.8 150 9/7/2023 2.0.8 is deprecated because it is no longer maintained.
2.0.5 163 9/6/2023 2.0.5 is deprecated because it is no longer maintained.
2.0.0 155 9/6/2023 2.0.0 is deprecated because it is no longer maintained.
1.9.38 158 9/5/2023 1.9.38 is deprecated because it is no longer maintained.
1.9.36 141 9/5/2023 1.9.36 is deprecated because it is no longer maintained.
1.9.35 142 9/4/2023 1.9.35 is deprecated because it is no longer maintained.
1.9.31 147 9/4/2023 1.9.31 is deprecated because it is no longer maintained.
1.9.28 144 9/4/2023 1.9.28 is deprecated because it is no longer maintained.
1.9.22 169 9/3/2023 1.9.22 is deprecated because it is no longer maintained.
1.9.17 160 9/3/2023 1.9.17 is deprecated because it is no longer maintained.
1.9.15 148 9/3/2023 1.9.15 is deprecated because it is no longer maintained.
1.9.8 148 9/1/2023 1.9.8 is deprecated because it is no longer maintained.
1.9.6 168 9/1/2023 1.9.6 is deprecated because it is no longer maintained.
1.9.4 173 9/1/2023 1.9.4 is deprecated because it is no longer maintained.
1.9.1 161 8/31/2023 1.9.1 is deprecated because it is no longer maintained.
1.8.22 206 8/29/2023 1.8.22 is deprecated because it is no longer maintained.
1.8.18 176 8/29/2023 1.8.18 is deprecated because it is no longer maintained.
1.8.8 185 8/24/2023 1.8.8 is deprecated because it is no longer maintained.
1.8.6 157 8/24/2023 1.8.6 is deprecated because it is no longer maintained.
1.7.0 179 8/22/2023 1.7.0 is deprecated because it is no longer maintained.
1.6.3 178 8/17/2023 1.6.3 is deprecated because it is no longer maintained.
1.6.2 182 8/17/2023 1.6.2 is deprecated because it is no longer maintained.
1.6.1 212 8/17/2023 1.6.1 is deprecated because it is no longer maintained.
1.6.0 181 8/17/2023 1.6.0 is deprecated because it is no longer maintained.
1.5.5 168 8/15/2023 1.5.5 is deprecated because it is no longer maintained.
1.5.0 175 8/14/2023 1.5.0 is deprecated because it is no longer maintained.
1.4.34 193 8/11/2023 1.4.34 is deprecated because it is no longer maintained.
1.4.33 195 8/11/2023 1.4.33 is deprecated because it is no longer maintained.
1.4.31 200 8/11/2023 1.4.31 is deprecated because it is no longer maintained.
1.4.29 203 8/10/2023 1.4.29 is deprecated because it is no longer maintained.
1.4.22 184 8/10/2023 1.4.22 is deprecated because it is no longer maintained.
1.4.21 181 8/10/2023 1.4.21 is deprecated because it is no longer maintained.
1.4.20 199 8/10/2023 1.4.20 is deprecated because it is no longer maintained.
1.4.18 190 8/7/2023 1.4.18 is deprecated because it is no longer maintained.
1.4.17 177 8/7/2023 1.4.17 is deprecated because it is no longer maintained.
1.4.15 193 8/7/2023 1.4.15 is deprecated because it is no longer maintained.
1.4.14 197 8/2/2023 1.4.14 is deprecated because it is no longer maintained.
1.4.12 196 8/2/2023 1.4.12 is deprecated because it is no longer maintained.
1.4.11 181 7/19/2023 1.4.11 is deprecated because it is no longer maintained.
1.4.10 204 7/19/2023 1.4.10 is deprecated because it is no longer maintained.
1.4.9 174 7/18/2023 1.4.9 is deprecated because it is no longer maintained.
1.4.8 187 7/18/2023 1.4.8 is deprecated because it is no longer maintained.
1.4.6 184 7/13/2023 1.4.6 is deprecated because it is no longer maintained.
1.4.5 173 7/11/2023 1.4.5 is deprecated because it is no longer maintained.
1.4.4 192 7/10/2023 1.4.4 is deprecated because it is no longer maintained.
1.4.3 207 7/10/2023 1.4.3 is deprecated because it is no longer maintained.
1.4.2 192 7/7/2023 1.4.2 is deprecated because it is no longer maintained.
1.4.1 200 7/6/2023 1.4.1 is deprecated because it is no longer maintained.
1.4.0 186 7/6/2023 1.4.0 is deprecated because it is no longer maintained.
1.3.17 194 7/5/2023 1.3.17 is deprecated because it is no longer maintained.
1.3.15 214 7/5/2023 1.3.15 is deprecated because it is no longer maintained.
1.3.14 177 7/5/2023 1.3.14 is deprecated because it is no longer maintained.
1.3.13 208 7/5/2023 1.3.13 is deprecated because it is no longer maintained.
1.3.12 205 6/30/2023 1.3.12 is deprecated because it is no longer maintained.
1.3.11 190 6/30/2023 1.3.11 is deprecated because it is no longer maintained.
1.3.8 197 6/30/2023 1.3.8 is deprecated because it is no longer maintained.
1.3.7 189 6/30/2023 1.3.7 is deprecated because it is no longer maintained.
1.3.6 199 6/30/2023 1.3.6 is deprecated because it is no longer maintained.
1.3.5 194 6/30/2023 1.3.5 is deprecated because it is no longer maintained.
1.3.4 202 6/30/2023 1.3.4 is deprecated because it is no longer maintained.
1.3.3 194 6/29/2023 1.3.3 is deprecated because it is no longer maintained.
1.3.2 169 6/29/2023 1.3.2 is deprecated because it is no longer maintained.
1.3.1 182 6/29/2023 1.3.1 is deprecated because it is no longer maintained.
1.3.0 163 6/29/2023 1.3.0 is deprecated because it is no longer maintained.
1.2.0 188 6/29/2023 1.2.0 is deprecated because it is no longer maintained.
1.1.0 185 6/29/2023 1.1.0 is deprecated because it is no longer maintained.
1.0.1 185 6/29/2023 1.0.1 is deprecated because it is no longer maintained.
0.3.26 189 6/29/2023 0.3.26 is deprecated because it is no longer maintained.
0.2.0 189 6/29/2023 0.2.0 is deprecated because it is no longer maintained.
0.1.1-initial-2-0027 158 6/8/2023 0.1.1-initial-2-0027 is deprecated because it is no longer maintained.
0.1.1-initial-2-0025 148 6/8/2023 0.1.1-initial-2-0025 is deprecated because it is no longer maintained.
0.1.1-initial-2-0024 133 6/8/2023 0.1.1-initial-2-0024 is deprecated because it is no longer maintained.
0.1.0 198 6/28/2023 0.1.0 is deprecated because it is no longer maintained.
0.1.0-initial-2-19 132 6/8/2023 0.1.0-initial-2-19 is deprecated because it is no longer maintained.
0.1.0-initial-2-16 140 6/8/2023 0.1.0-initial-2-16 is deprecated because it is no longer maintained.
0.1.0-initial-2-0023 136 6/8/2023 0.1.0-initial-2-0023 is deprecated because it is no longer maintained.
0.0.1-alpha03 160 5/29/2023 0.0.1-alpha03 is deprecated because it is no longer maintained.
0.0.1-alpha02 140 5/28/2023 0.0.1-alpha02 is deprecated because it is no longer maintained.
0.0.1-alpha01 135 5/28/2023 0.0.1-alpha01 is deprecated because it is no longer maintained.