ModularPipelines.Git 2.5.2

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package ModularPipelines.Git --version 2.5.2                
NuGet\Install-Package ModularPipelines.Git -Version 2.5.2                
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.Git" Version="2.5.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ModularPipelines.Git --version 2.5.2                
#r "nuget: ModularPipelines.Git, 2.5.2"                
#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.Git as a Cake Addin
#addin nuget:?package=ModularPipelines.Git&version=2.5.2

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

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 License Codacy Badge

Features

  • Parallel execution with easy waiting on dependencies if necessary
  • Familiar C# code
  • 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 Version
ModularPipelines nuget
ModularPipelines.Azure nuget
ModularPipelines.Azure.Pipelines nuget
ModularPipelines.Cmd nuget
ModularPipelines.Docker nuget
ModularPipelines.DotNet nuget
ModularPipelines.Email nuget
ModularPipelines.Ftp nuget
ModularPipelines.Git nuget
ModularPipelines.Helm nuget
ModularPipelines.Kubernetes nuget
ModularPipelines.MicrosoftTeams nuget
ModularPipelines.Node nuget
ModularPipelines.NuGet nuget
ModularPipelines.Slack nuget
ModularPipelines.Terraform 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"));
    })
    .AddModule<FindNugetPackagesModule>()
    .AddModule<UploadNugetPackagesModule>()
    .ExecutePipelineAsync();

Custom Modules

public class FindNugetPackagesModule : Module<FileInfo>
{
    protected override async Task<List<File>?> ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
    {
        await Task.Yield();

        return context.Git()
            .RootDirectory
            .GetFiles(path => path.Extension is ".nupkg")
            .ToList();
    }
}
[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(packagePaths.Value!.AsPaths(), new Uri("https://api.nuget.org/v3/index.json"))
            {
                ApiKey = _nugetSettings.Value.ApiKey,
                NoSymbols = true
            });
    }
}
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 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on ModularPipelines.Git:

Package Downloads
ModularPipelines.GitHub

Helpers for interacting with GitHub Actions build agents.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on ModularPipelines.Git:

Repository Stars
thomhurst/TUnit
A modern, fast and flexible .NET testing framework
thomhurst/EnumerableAsyncProcessor
Process Multiple Asynchronous Tasks in Various Ways - One at a time / Batched / Rate limited / Concurrently
Version Downloads Last updated
2.42.140 1,579 12/1/2024
2.42.134 284 11/30/2024
2.42.132 135 11/30/2024
2.42.115 4,133 11/17/2024
2.42.87 1,960 10/28/2024
2.42.67 3,869 9/29/2024
2.42.59 1,348 9/19/2024
2.42.54 189 9/19/2024
2.42.53 128 9/19/2024
2.42.47 997 9/13/2024
2.42.45 6,880 9/12/2024
2.42.9 1,896 9/5/2024
2.42.8 492 9/4/2024
2.42.0 170 9/4/2024
2.41.4 189 9/3/2024
2.41.0 287 9/3/2024
2.40.18 199 9/2/2024
2.40.15 122 9/2/2024
2.40.10 197 9/2/2024
2.40.8 128 9/2/2024
2.40.4 1,583 8/29/2024
2.40.1 209 8/28/2024
2.38.36 254 8/26/2024
2.38.25 785 8/12/2024
2.38.2 758 7/27/2024
2.38.1 110 7/27/2024
2.37.9 342 7/14/2024
2.37.1 110 7/14/2024
2.36.29 607 7/5/2024
2.36.23 447 6/30/2024
2.36.4 1,046 6/7/2024
2.35.0 270 6/2/2024
2.34.0 293 5/23/2024
2.33.0 500 5/20/2024
2.32.0 201 5/17/2024
2.31.3 960 4/15/2024
2.31.0 131 4/15/2024
2.30.9 370 3/27/2024
2.30.5 128 3/26/2024
2.30.3 130 3/26/2024
2.29.32 153 3/26/2024
2.29.22 440 3/8/2024
2.29.15 227 3/1/2024
2.29.11 183 2/27/2024
2.29.9 302 2/26/2024
2.29.0 141 2/25/2024
2.28.0 144 2/23/2024
2.27.12 322 2/15/2024
2.27.9 161 2/14/2024
2.27.3 310 2/8/2024
2.27.0 119 2/8/2024
2.26.8 276 2/4/2024
2.26.0 369 1/29/2024
2.25.0 147 1/28/2024
2.24.9 243 1/25/2024
2.24.4 113 1/25/2024
2.24.1 183 1/22/2024
2.22.0 130 1/18/2024
2.21.12 147 1/18/2024
2.21.9 128 1/18/2024
2.21.4 172 1/13/2024
2.21.0 104 1/12/2024
2.20.2 170 1/11/2024
2.19.2 280 12/27/2023
2.19.0 152 12/26/2023
2.18.8 114 12/26/2023
2.18.0 230 12/24/2023
2.17.25 185 12/22/2023
2.17.20 350 12/5/2023
2.17.0 305 11/24/2023
2.16.2 138 11/23/2023
2.16.0 155 11/23/2023
2.15.24 163 11/22/2023
2.15.21 138 11/22/2023
2.15.17 147 11/20/2023
2.15.3 193 11/9/2023
2.15.0 104 11/8/2023
2.14.9 198 11/6/2023
2.14.7 143 11/6/2023
2.14.1 140 11/6/2023
2.13.63 175 10/29/2023
2.13.47 221 10/20/2023
2.13.8 160 10/13/2023
2.13.5 132 10/13/2023
2.12.15 141 10/10/2023
2.12.11 185 10/10/2023
2.12.5 145 10/6/2023
2.12.1 158 10/4/2023
2.11.12 159 10/1/2023
2.11.11 135 9/30/2023
2.11.9 153 9/30/2023
2.11.4 148 9/30/2023
2.11.0 189 9/29/2023
2.10.6 243 9/29/2023
2.10.0 141 9/28/2023
2.9.0 129 9/28/2023
2.8.23 143 9/26/2023
2.8.12 148 9/24/2023
2.8.4 137 9/24/2023
2.8.0 137 9/24/2023
2.7.10 140 9/23/2023
2.7.6 148 9/22/2023
2.6.0 153 9/19/2023
2.5.11 151 9/16/2023
2.5.5 161 9/14/2023
2.5.2 159 9/14/2023
2.5.0 131 9/14/2023
2.4.0 140 9/12/2023
2.3.2 163 9/11/2023
2.3.0 152 9/11/2023
2.2.0 167 9/11/2023
2.0.8 156 9/7/2023
2.0.5 134 9/6/2023
2.0.0 145 9/6/2023
1.9.38 149 9/5/2023
1.9.36 130 9/5/2023
1.9.35 143 9/4/2023
1.9.31 148 9/4/2023
1.9.28 149 9/4/2023
1.9.22 150 9/3/2023
1.9.17 144 9/3/2023
1.9.15 136 9/3/2023
1.9.8 144 9/1/2023
1.9.6 163 9/1/2023
1.9.4 160 9/1/2023
1.9.1 167 8/31/2023
1.8.22 185 8/29/2023
1.8.18 145 8/29/2023
1.8.8 146 8/24/2023
1.8.6 144 8/24/2023
1.7.0 155 8/22/2023
1.6.3 165 8/17/2023
1.6.2 151 8/17/2023
1.6.1 192 8/17/2023
1.6.0 174 8/17/2023
1.5.5 184 8/15/2023
1.5.0 175 8/14/2023
1.4.34 180 8/11/2023
1.4.33 157 8/11/2023
1.4.31 186 8/11/2023
1.4.29 164 8/10/2023
1.4.22 170 8/10/2023
1.4.21 231 8/10/2023
1.4.20 180 8/10/2023
1.4.18 180 8/7/2023
1.4.17 177 8/7/2023
1.4.15 181 8/7/2023
1.4.14 190 8/2/2023
1.4.12 187 8/2/2023
1.4.11 184 7/19/2023
1.4.10 188 7/19/2023
1.4.9 174 7/18/2023
1.4.8 176 7/18/2023
1.4.6 186 7/13/2023
1.4.5 167 7/11/2023
1.4.4 184 7/10/2023
1.4.3 169 7/10/2023
1.4.2 185 7/7/2023
1.4.1 210 7/6/2023
1.4.0 172 7/6/2023
1.3.17 185 7/5/2023
1.3.15 187 7/5/2023
1.3.14 178 7/5/2023
1.3.13 169 7/5/2023
1.3.12 181 6/30/2023
1.3.11 196 6/30/2023
1.3.8 190 6/30/2023
1.3.7 184 6/30/2023
1.3.6 182 6/30/2023
1.3.5 159 6/30/2023
1.3.4 181 6/30/2023
1.3.3 183 6/29/2023
1.3.2 180 6/29/2023
1.3.1 173 6/29/2023
1.3.0 179 6/29/2023
1.2.0 170 6/29/2023
1.1.0 173 6/29/2023
1.0.1 185 6/29/2023
0.3.26 187 6/29/2023
0.2.0 166 6/29/2023
0.1.1-initial-2-0027 146 6/8/2023
0.1.1-initial-2-0025 146 6/8/2023
0.1.1-initial-2-0024 143 6/8/2023
0.1.0 190 6/28/2023
0.1.0-initial-2-19 144 6/8/2023
0.1.0-initial-2-0023 143 6/8/2023
0.1.0-initial-2.1 61 6/8/2023
0.0.1-alpha03 144 5/29/2023
0.0.1-alpha02 133 5/28/2023
0.0.1-alpha01 137 5/28/2023