Skip to content

Replace NUKE build with plain dotnet CLI workflows - #46

Merged
danielchalmers merged 2 commits into
mainfrom
remove-nuke
Jul 27, 2026
Merged

Replace NUKE build with plain dotnet CLI workflows#46
danielchalmers merged 2 commits into
mainfrom
remove-nuke

Conversation

@danielchalmers

@danielchalmers danielchalmers commented Jul 26, 2026

Copy link
Copy Markdown
Member

The NUKE build wrapped five dotnet CLI calls — restore, format, build, pack, push — with no tests, no build matrix, and no platform-specific logic. In exchange it cost an extra project (build/_build.csproj plus its Nuke.Common dependency), the .nuke folder, three bootstrapper scripts, and a layer of indirection: changing CI meant editing C# attributes in Build.cs and regenerating the workflow YAML rather than editing the YAML directly.

Changes

  • Deleted build/, .nuke/, build.cmd, build.ps1, build.sh, and removed _build.csproj from the solution.
  • Rewrote both workflows by hand to call dotnet directly, preserving the existing behaviour:
    • continuous — restore, dotnet format whitespace/style --verify-no-changes, build, pack, upload packages artifact.
    • release — pack, push to nuget.org and GitHub Packages with --skip-duplicate, upload packages artifact.
  • Added an explicit permissions: block to the release job (packages: write) so the GitHub Packages push does not depend on the repository's default token permissions.
  • The NuGet cache key no longer references global.json or Directory.Packages.props, neither of which exists in this repo, and now has a restore-keys fallback.

The NUKE build only wrapped five dotnet CLI calls (restore, format,
build, pack, push) with no tests, matrix, or platform-specific logic,
so the build project, bootstrapper scripts and .nuke folder were more
indirection than the project needed. CI changes previously required
editing C# attributes and regenerating the workflow YAML.

The two workflows are now hand-written and call dotnet directly.
Versioning is unaffected: Nerdbank.GitVersioning is referenced by the
library project, not by the build.
@danielchalmers
danielchalmers merged commit 0c59c32 into main Jul 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant