NukeBuildHelpers 2.1.0-prerelease.3
See the version list below for details.
dotnet add package NukeBuildHelpers --version 2.1.0-prerelease.3
NuGet\Install-Package NukeBuildHelpers -Version 2.1.0-prerelease.3
<PackageReference Include="NukeBuildHelpers" Version="2.1.0-prerelease.3" />
paket add NukeBuildHelpers --version 2.1.0-prerelease.3
#r "nuget: NukeBuildHelpers, 2.1.0-prerelease.3"
// Install NukeBuildHelpers as a Cake Addin #addin nuget:?package=NukeBuildHelpers&version=2.1.0-prerelease.3&prerelease // Install NukeBuildHelpers as a Cake Tool #tool nuget:?package=NukeBuildHelpers&version=2.1.0-prerelease.3&prerelease
NukeBuildHelpers
NukeBuildHelpers is a C# project build automation tool built on top of NukeBuild. It supports both GitHub Actions and Azure Pipelines for CI/CD, enabling release management across multiple projects and environments within a single repository.
Features
- Multi-project and Multi-environment Support: Handle releases for multiple projects and environments in a single repository.
- CI/CD Integration: Generate GitHub Actions and Azure Pipelines workflows.
- Automated Versioning: Interactive CLI for bumping project versions with validation.
- Flexible Build Flow: Override abstract classes to create custom build flows.
Quick Start
Using the Repository Template
To quickly set up a new project, use the NukeBuildTemplate repository template:
- Clone the template repository.
- Follow the setup instructions in the template.
Installing via NuGet
If you already have a NukeBuild setup, you can install NukeBuildHelpers via NuGet:
dotnet add package NukeBuildHelpers
Usage
Creating Build Flows
To create custom build flows, override the abstract classes AppEntry
or AppTestEntry
.
Example AppEntry
Implementation
namespace _build;
public class NugetBuildHelpers : AppEntry<Build>
{
public override RunsOnType BuildRunsOn => RunsOnType.Ubuntu2204;
public override RunsOnType PublishRunsOn => RunsOnType.Ubuntu2204;
[SecretHelper("NUGET_AUTH_TOKEN")]
readonly string? NuGetAuthToken;
[SecretHelper("GITHUB_TOKEN")]
readonly string? GithubToken;
public override void Build(AppRunContext appRunContext)
{
// Build logic here
}
public override void Publish(AppRunContext appRunContext)
{
// Publish logic here
}
}
Example AppTestEntry
Implementation
namespace _build;
public class NugetBuildHelpersTest : AppTestEntry<Build>
{
public override RunsOnType RunsOn => RunsOnType.WindowsLatest;
public override Type[] AppEntryTargets => [typeof(NugetBuildHelpers)];
public override void Run(AppTestRunContext appTestRunContext)
{
// Test logic here
}
}
Generating Workflows
Generate GitHub and Azure Pipelines workflows using CLI commands:
# Generate GitHub workflow
build githubworkflow
# Generate Azure Pipelines workflow
build azureworkflow
These commands will generate azure-pipelines.yml
and .github/workflows/nuke-cicd.yml
respectively.
Bumping Project Version
Use the build bump
command to interactively bump the project version:
build bump
CLI Subcommands
Fetch
: Fetch git commits and tags.Version
: Show the current version from all releases.Bump
: Interactive, bump the version by validating and tagging.BumpAndForget
: Interactive, bump and forget the version by validating and tagging.StatusWatch
: Show the current version status from all releases.Test
: Run tests.Build
: Build the project.Publish
: Publish the project.GithubWorkflow
: Build the CI/CD workflow for GitHub.AzureWorkflow
: Build the CI/CD workflow for Azure.
Versioning and Status
- The
Version
subcommand shows the current version from all releases. Example output from the subcommand:
╬══════════════════════╬═════════════╬════════════════════╬═════════════════════╬
║ App Id ║ Environment ║ Bumped Version ║ Published ║
╬══════════════════════╬═════════════╬════════════════════╬═════════════════════╬
║ nuget_build_helpers ║ prerelease ║ 2.1.0-prerelease.1 ║ 2.0.0-prerelease.8* ║
║ ║ main ║ 2.0.0 ║ yes ║
║----------------------║-------------║--------------------║---------------------║
║ nuget_build_helpers2 ║ prerelease ║ 0.1.0-prerelease.2 ║ no ║
║ ║ main ║ - ║ no ║
╬══════════════════════╬═════════════╬════════════════════╬═════════════════════╬
- The
StatusWatch
subcommand continuously monitors the version status. Example output from the subcommand:
╬══════════════════════╬═════════════╬════════════════════╬═══════════════╬
║ App Id ║ Environment ║ Version ║ Status ║
╬══════════════════════╬═════════════╬════════════════════╬═══════════════╬
║ nuget_build_helpers ║ prerelease ║ 2.1.0-prerelease.2 ║ Published ║
║ ║ main ║ 2.0.0 ║ Published ║
║----------------------║-------------║--------------------║---------------║
║ nuget_build_helpers2 ║ prerelease ║ 0.1.0-prerelease.2 ║ Run Failed ║
║ ║ main ║ - ║ Not published ║
╬══════════════════════╬═════════════╬════════════════════╬═══════════════╬
Status types include:
- Run Failed: The build encountered an error and did not complete successfully.
- Published: The build was successfully published.
- Publishing: The build is currently in the process of being published.
- Waiting for Queue: The build is waiting in the queue to be processed.
- Not Published: The build has not been published.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- NukeBuild for providing the foundation for this project.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- Macross.Json.Extensions (>= 3.0.0)
- NuGet.Packaging (>= 6.9.1)
- Nuke.Common (>= 8.0.0)
- Semver (>= 2.3.0)
- Sharprompt (>= 2.4.5)
- System.Drawing.Common (>= 8.0.2)
- System.Security.Cryptography.Xml (>= 8.0.0)
- YamlDotNet (>= 15.1.2)
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 |
---|---|---|
6.3.24 | 166 | 11/14/2024 |
6.3.22 | 26 | 11/14/2024 |
6.3.21 | 88 | 11/13/2024 |
6.3.20 | 497 | 11/7/2024 |
6.3.19 | 198 | 11/6/2024 |
6.3.18 | 2,816 | 10/30/2024 |
6.3.17 | 542 | 10/30/2024 |
6.3.16-prerelease.2 | 30 | 10/30/2024 |
6.3.15 | 327 | 10/29/2024 |
6.3.14 | 533 | 10/26/2024 |
6.3.13 | 400 | 10/25/2024 |
6.3.11 | 1,050 | 10/23/2024 |
6.3.10 | 412 | 10/22/2024 |
6.3.8 | 38 | 10/22/2024 |
6.3.7 | 882 | 10/17/2024 |
6.3.6 | 186 | 10/17/2024 |
6.3.5 | 712 | 10/14/2024 |
6.3.4 | 240 | 10/14/2024 |
6.3.3 | 680 | 10/11/2024 |
6.3.2 | 102 | 10/11/2024 |
6.3.1 | 33 | 10/11/2024 |
6.3.0-prerelease.2 | 28 | 10/11/2024 |
6.2.1 | 1,107 | 10/7/2024 |
6.2.0 | 668 | 10/4/2024 |
6.1.4 | 447 | 10/2/2024 |
6.1.4-prerelease.6 | 31 | 10/4/2024 |
6.1.4-prerelease.5 | 35 | 10/4/2024 |
6.1.3 | 738 | 9/27/2024 |
6.1.2 | 136 | 9/27/2024 |
6.1.1 | 38 | 9/27/2024 |
6.1.0 | 1,115 | 9/25/2024 |
6.0.2 | 790 | 9/23/2024 |
6.0.1 | 678 | 9/20/2024 |
6.0.0 | 763 | 9/18/2024 |
6.0.0-prerelease.4 | 33 | 9/18/2024 |
6.0.0-prerelease.2 | 34 | 9/18/2024 |
6.0.0-prerelease.1 | 32 | 9/18/2024 |
5.1.5 | 438 | 9/16/2024 |
5.1.4 | 713 | 9/10/2024 |
5.1.3 | 76 | 9/10/2024 |
5.1.2 | 796 | 9/5/2024 |
5.1.1 | 518 | 9/2/2024 |
5.1.0 | 377 | 8/29/2024 |
5.0.2 | 898 | 8/26/2024 |
5.0.0 | 50 | 8/26/2024 |
5.0.0-prerelease.13 | 40 | 8/26/2024 |
5.0.0-prerelease.12 | 34 | 8/26/2024 |
5.0.0-prerelease.11 | 36 | 8/26/2024 |
5.0.0-prerelease.10 | 39 | 8/26/2024 |
4.11.0 | 44 | 8/26/2024 |
4.10.4 | 457 | 8/22/2024 |
4.10.3 | 468 | 8/20/2024 |
4.10.2 | 309 | 8/19/2024 |
4.10.1 | 516 | 8/14/2024 |
4.10.0 | 304 | 8/14/2024 |
4.10.0-prerelease.9 | 35 | 8/14/2024 |
4.10.0-prerelease.8 | 35 | 8/14/2024 |
4.10.0-prerelease.7 | 45 | 8/14/2024 |
4.10.0-prerelease.6 | 37 | 8/14/2024 |
4.10.0-prerelease.5 | 36 | 8/14/2024 |
4.10.0-prerelease.4 | 39 | 8/13/2024 |
4.10.0-prerelease.3 | 35 | 8/13/2024 |
4.10.0-prerelease.2 | 38 | 8/13/2024 |
4.10.0-prerelease.1 | 35 | 8/13/2024 |
4.9.6 | 204 | 8/13/2024 |
4.9.5 | 424 | 8/13/2024 |
4.9.5-prerelease.6 | 39 | 8/13/2024 |
4.9.4 | 57 | 8/13/2024 |
4.9.4-prerelease.6 | 40 | 8/6/2024 |
4.9.4-prerelease.5 | 44 | 8/5/2024 |
4.9.4-prerelease.3 | 33 | 8/5/2024 |
4.9.4-prerelease.2 | 30 | 8/5/2024 |
4.9.4-prerelease.1 | 30 | 8/5/2024 |
4.9.3 | 558 | 7/31/2024 |
4.9.2 | 123 | 7/31/2024 |
4.9.1 | 30 | 7/31/2024 |
4.9.0 | 31 | 7/31/2024 |
4.8.0 | 421 | 7/26/2024 |
4.6.5 | 863 | 7/16/2024 |
4.6.4 | 47 | 7/16/2024 |
4.6.3 | 46 | 7/16/2024 |
4.6.2 | 43 | 7/16/2024 |
4.6.0 | 42 | 7/16/2024 |
4.5.8 | 158 | 7/15/2024 |
4.5.7 | 205 | 7/14/2024 |
4.5.4 | 47 | 7/14/2024 |
4.5.3 | 46 | 7/14/2024 |
4.5.2 | 49 | 7/14/2024 |
4.5.1 | 53 | 7/14/2024 |
4.5.0 | 58 | 7/13/2024 |
4.4.0 | 56 | 7/13/2024 |
4.3.1 | 191 | 7/13/2024 |
4.3.0 | 43 | 7/13/2024 |
4.2.1 | 559 | 7/12/2024 |
4.2.0-prerelease.9 | 43 | 7/12/2024 |
4.2.0-prerelease.4 | 45 | 7/12/2024 |
4.2.0-prerelease.3 | 39 | 7/12/2024 |
4.2.0-prerelease.1 | 40 | 7/12/2024 |
4.1.0 | 43 | 7/12/2024 |
4.0.6 | 360 | 7/9/2024 |
4.0.5 | 43 | 7/9/2024 |
4.0.4 | 752 | 7/7/2024 |
4.0.3 | 43 | 7/7/2024 |
4.0.2 | 51 | 7/7/2024 |
4.0.1 | 221 | 7/7/2024 |
4.0.0 | 190 | 7/7/2024 |
4.0.0-prerelease.4 | 43 | 7/7/2024 |
4.0.0-prerelease.2 | 39 | 7/7/2024 |
4.0.0-prerelease.1 | 43 | 7/7/2024 |
3.3.5 | 49 | 7/6/2024 |
3.3.4 | 243 | 7/1/2024 |
3.3.3 | 196 | 6/30/2024 |
3.3.2 | 45 | 6/30/2024 |
3.3.1 | 51 | 6/30/2024 |
3.3.0 | 46 | 6/30/2024 |
3.3.0-prerelease.12 | 41 | 6/30/2024 |
3.2.5 | 163 | 6/30/2024 |
3.2.4 | 56 | 6/30/2024 |
3.2.1 | 48 | 6/29/2024 |
3.2.0 | 297 | 6/27/2024 |
3.1.2 | 45 | 6/27/2024 |
3.0.5 | 121 | 6/26/2024 |
3.0.3 | 48 | 6/26/2024 |
3.0.0 | 61 | 6/26/2024 |
3.0.0-prerelease.3 | 42 | 6/26/2024 |
3.0.0-prerelease.2 | 46 | 6/26/2024 |
3.0.0-prerelease.1 | 45 | 6/26/2024 |
2.7.1 | 71 | 6/7/2024 |
2.7.0 | 45 | 6/7/2024 |
2.7.0-prerelease.1 | 44 | 6/7/2024 |
2.6.1 | 210 | 6/4/2024 |
2.6.1-prerelease.1 | 46 | 6/4/2024 |
2.6.0 | 124 | 6/4/2024 |
2.6.0-prerelease.1 | 40 | 6/4/2024 |
2.5.0 | 112 | 6/3/2024 |
2.5.0-prerelease.4 | 52 | 6/3/2024 |
2.5.0-prerelease.3 | 33 | 6/3/2024 |
2.5.0-prerelease.2 | 42 | 6/3/2024 |
2.5.0-prerelease.1 | 47 | 6/3/2024 |
2.4.1 | 66 | 5/29/2024 |
2.4.0 | 80 | 5/29/2024 |
2.4.0-prerelease.2 | 49 | 5/29/2024 |
2.4.0-prerelease.1 | 47 | 5/27/2024 |
2.3.0 | 182 | 5/27/2024 |
2.3.0-prerelease.1 | 47 | 5/27/2024 |
2.2.0 | 49 | 5/27/2024 |
2.2.0-prerelease.1 | 47 | 5/27/2024 |
2.1.2 | 97 | 5/27/2024 |
2.1.1 | 53 | 5/27/2024 |
2.1.0 | 176 | 5/24/2024 |
2.1.0-prerelease.4 | 52 | 5/24/2024 |
2.1.0-prerelease.3 | 55 | 5/24/2024 |
2.1.0-prerelease.2 | 41 | 5/23/2024 |
2.1.0-prerelease.1 | 44 | 5/23/2024 |
2.0.0 | 61 | 5/23/2024 |
2.0.0-prerelease.8 | 100 | 5/22/2024 |
2.0.0-prerelease.7 | 58 | 5/22/2024 |
2.0.0-prerelease.5 | 49 | 5/22/2024 |
2.0.0-prerelease.4 | 50 | 5/22/2024 |
2.0.0-prerelease.3 | 51 | 5/22/2024 |
1.0.2 | 545 | 4/25/2024 |
1.0.1 | 604 | 4/20/2024 |
1.0.0 | 421 | 4/1/2024 |
0.8.4-prerelease.4 | 77 | 3/31/2024 |
0.8.4-prerelease.2 | 65 | 3/31/2024 |
0.8.4-prerelease.1 | 53 | 3/31/2024 |
0.8.3 | 169 | 3/26/2024 |
0.8.3-prerelease.1 | 51 | 3/26/2024 |
0.8.2 | 148 | 3/26/2024 |
0.8.2-prerelease.2 | 59 | 3/26/2024 |
0.8.2-prerelease.1 | 56 | 3/26/2024 |
0.8.1 | 160 | 3/25/2024 |
0.8.1-prerelease.3 | 53 | 3/25/2024 |
0.8.1-prerelease.1 | 53 | 3/25/2024 |
0.8.0 | 109 | 3/25/2024 |
0.8.0-prerelease.44 | 59 | 3/25/2024 |
0.8.0-prerelease.40 | 62 | 3/25/2024 |
0.8.0-prerelease.39 | 58 | 3/25/2024 |
0.8.0-prerelease.38 | 58 | 3/25/2024 |
0.8.0-prerelease.37 | 52 | 3/25/2024 |
0.8.0-prerelease.36 | 183 | 3/22/2024 |
0.8.0-prerelease.35 | 58 | 3/22/2024 |
0.8.0-prerelease.34 | 140 | 3/21/2024 |
0.8.0-prerelease.33 | 49 | 3/21/2024 |
0.8.0-prerelease.32 | 62 | 3/21/2024 |
0.8.0-prerelease.31 | 56 | 3/21/2024 |
0.8.0-prerelease.28 | 65 | 3/21/2024 |
0.8.0-prerelease.27 | 59 | 3/21/2024 |
0.8.0-prerelease.26 | 51 | 3/21/2024 |
0.8.0-prerelease.25 | 53 | 3/21/2024 |
0.8.0-prerelease.23 | 52 | 3/21/2024 |
0.8.0-prerelease.22 | 53 | 3/21/2024 |
0.8.0-prerelease.21 | 58 | 3/21/2024 |
0.8.0-prerelease.20 | 48 | 3/21/2024 |
0.8.0-prerelease.19 | 51 | 3/21/2024 |
0.8.0-prerelease.18 | 57 | 3/21/2024 |
0.8.0-prerelease.17 | 52 | 3/21/2024 |
0.8.0-prerelease.16 | 60 | 3/21/2024 |
0.8.0-prerelease.15 | 56 | 3/21/2024 |
0.8.0-prerelease.14 | 49 | 3/21/2024 |
0.8.0-prerelease.13 | 50 | 3/21/2024 |
0.8.0-prerelease.12 | 53 | 3/21/2024 |
0.8.0-prerelease.11 | 45 | 3/21/2024 |
0.8.0-prerelease.10 | 57 | 3/21/2024 |
0.8.0-prerelease.9 | 57 | 3/21/2024 |
0.8.0-prerelease.7 | 324 | 3/19/2024 |
0.8.0-prerelease.6 | 116 | 3/19/2024 |
0.8.0-prerelease.5 | 274 | 3/13/2024 |
0.8.0-prerelease.4 | 63 | 3/13/2024 |
0.8.0-prerelease.3 | 49 | 3/13/2024 |
0.8.0-prerelease.2 | 65 | 3/13/2024 |
0.8.0-prerelease.1 | 48 | 3/13/2024 |
0.7.0 | 128 | 3/13/2024 |
0.7.0-prerelease.1 | 55 | 3/13/2024 |
0.6.0-prerelease.1 | 49 | 3/12/2024 |
0.5.0-prerelease.26 | 45 | 3/12/2024 |
0.5.0-prerelease.25 | 45 | 3/12/2024 |
0.5.0-prerelease.24 | 95 | 3/11/2024 |
0.5.0-prerelease.23 | 56 | 3/10/2024 |
0.5.0-prerelease.22 | 49 | 3/10/2024 |
0.5.0-prerelease.20 | 90 | 3/10/2024 |
0.5.0-prerelease.19 | 57 | 3/10/2024 |
0.5.0-prerelease.18 | 89 | 3/10/2024 |
0.5.0-prerelease.17 | 67 | 3/10/2024 |
0.5.0-prerelease.16 | 53 | 3/10/2024 |
0.5.0-prerelease.15 | 47 | 3/10/2024 |
0.5.0-prerelease.14 | 52 | 3/10/2024 |
0.5.0-prerelease.13 | 51 | 3/10/2024 |
0.5.0-prerelease.12 | 53 | 3/10/2024 |
0.5.0-prerelease.11 | 54 | 3/9/2024 |
0.5.0-prerelease.9 | 61 | 3/9/2024 |
0.5.0-prerelease.7 | 174 | 3/8/2024 |
0.5.0-prerelease.6 | 58 | 3/8/2024 |
0.5.0-prerelease.5 | 57 | 3/8/2024 |
0.5.0-prerelease.4 | 64 | 3/8/2024 |
0.4.2 | 95 | 3/8/2024 |
0.4.1 | 98 | 3/8/2024 |
0.4.0 | 86 | 3/8/2024 |
0.4.0-prerelease.46 | 56 | 3/8/2024 |
0.4.0-prerelease.45 | 33 | 3/8/2024 |
0.4.0-prerelease.44 | 47 | 3/8/2024 |
0.4.0-prerelease.42 | 57 | 3/8/2024 |
0.4.0-prerelease.41 | 50 | 3/7/2024 |
0.4.0-prerelease.39 | 46 | 3/7/2024 |
0.4.0-prerelease.37 | 45 | 3/7/2024 |
0.4.0-prerelease.36 | 47 | 3/7/2024 |
0.4.0-prerelease.35 | 45 | 3/7/2024 |
0.4.0-prerelease.34 | 51 | 3/7/2024 |
0.4.0-prerelease.33 | 49 | 3/7/2024 |
0.4.0-prerelease.32 | 50 | 3/7/2024 |
0.4.0-prerelease.28 | 52 | 3/7/2024 |
0.4.0-prerelease.27 | 43 | 3/7/2024 |
0.4.0-prerelease.25 | 47 | 3/7/2024 |
0.4.0-prerelease.24 | 46 | 3/7/2024 |
0.4.0-prerelease.23 | 49 | 3/7/2024 |
0.4.0-prerelease.22 | 49 | 3/7/2024 |
0.4.0-prerelease.21 | 55 | 3/7/2024 |
0.4.0-prerelease.20 | 50 | 3/7/2024 |
0.4.0-prerelease.19 | 49 | 3/7/2024 |
0.4.0-prerelease.18 | 51 | 3/7/2024 |
0.4.0-prerelease.17 | 55 | 3/7/2024 |
0.4.0-prerelease.16 | 49 | 3/7/2024 |
0.4.0-prerelease.15 | 49 | 3/7/2024 |
0.4.0-prerelease.14 | 52 | 3/7/2024 |
0.4.0-prerelease.13 | 52 | 3/7/2024 |
0.3.0 | 112 | 3/5/2024 |
0.3.0-prerelease.3 | 58 | 3/5/2024 |
0.2.0 | 110 | 3/5/2024 |
0.1.0 | 121 | 3/5/2024 |
0.1.0-prerelease.22 | 55 | 3/5/2024 |
0.1.0-prerelease.19 | 48 | 3/5/2024 |
0.1.0-prerelease.18 | 51 | 3/5/2024 |
0.1.0-prerelease.17 | 52 | 3/5/2024 |
0.1.0-prerelease.13 | 60 | 3/5/2024 |
0.1.0-prerelease.12 | 62 | 3/5/2024 |
0.1.0-prerelease.10 | 60 | 3/5/2024 |
0.1.0-prerelease.9 | 57 | 3/5/2024 |
0.1.0-prerelease.8 | 56 | 3/5/2024 |
0.1.0-prerelease.7 | 58 | 3/5/2024 |
0.1.0-prerelease.5 | 59 | 3/5/2024 |
0.1.0-prerelease.4 | 50 | 3/5/2024 |
0.1.0-prerelease.3 | 57 | 3/5/2024 |
0.1.0-prerelease.2 | 55 | 3/5/2024 |
0.1.0-prerelease.1 | 142 | 12/13/2023 |
0.1.0-alpha.1 | 65 | 3/5/2024 |
## What's Changed
* Fixed empty entries on pull requests by @Kiryuumaru in https://github.com/Kiryuumaru/NukeBuildHelpers/pull/27
**Full Changelog**: https://github.com/Kiryuumaru/NukeBuildHelpers/compare/build.348...build.349