Skip to content

Replace NUKE build with plain dotnet CLI workflows - #519

Merged
danielchalmers merged 1 commit into
devfrom
claude/remove-nuke
Jul 27, 2026
Merged

Replace NUKE build with plain dotnet CLI workflows#519
danielchalmers merged 1 commit into
devfrom
claude/remove-nuke

Conversation

@danielchalmers

@danielchalmers danielchalmers commented Jul 27, 2026

Copy link
Copy Markdown
Member

Ports MudBlazor/ThemeManager#46. build/Build.cs here was structurally identical to ThemeManager's, so the reasoning carries over unchanged.

NUKE wrapped a handful of dotnet CLI calls with no tests, no build matrix, and no platform-specific logic. In exchange it cost an extra project (_build.csproj plus Nuke.Common), the .nuke folder, three bootstrapper scripts, and a layer of indirection — changing CI meant editing C# attributes and regenerating YAML instead of editing the YAML.

Changes

  • Deleted build/, .nuke/, build.cmd, build.ps1, build.sh, and removed _build.csproj from src/MudBlazor.Templates.sln.
  • Rewrote continuous.yml (restore → build → pack → upload) and release.yml (pack → push to nuget.org + GitHub Packages → upload) to call dotnet directly.
  • Dropped the format check: MudBlazor.Templates.csproj sets <Compile Remove="**\*" />, so with _build gone the solution has no compile items and dotnet format verified nothing.
  • Added permissions: packages: write to the release job so the GitHub Packages push doesn't rely on the repo's default token permissions.
  • Cache key no longer references global.json or Directory.Packages.props (neither exists here); added a restore-keys fallback.

@danielchalmers
danielchalmers changed the base branch from claude/ci-trigger-pull-requests to dev July 27, 2026 03:10
@danielchalmers
danielchalmers force-pushed the claude/remove-nuke branch 2 times, most recently from d7d08eb to 7d9266d Compare July 27, 2026 03:13
The NUKE build wrapped a handful of `dotnet` CLI calls — restore, 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.

This mirrors the same change made in MudBlazor/ThemeManager.

Changes

- Deleted `build/`, `.nuke/`, `build.cmd`, `build.ps1`, and `build.sh`, and
  removed `_build.csproj` from `src/MudBlazor.Templates.sln`. `_build` was
  `IsPackable=false`, so package output is unchanged.
- Rewrote both workflows by hand to call `dotnet` directly:
  - continuous — restore, build, pack, upload packages artifact.
  - release — pack, push to nuget.org and GitHub Packages with
    `--skip-duplicate`, upload packages artifact.
- Dropped the format check. `MudBlazor.Templates.csproj` sets
  `<Compile Remove="**\*" />`, so with `_build` gone the solution has no
  compile items and `dotnet format` verifies nothing.
- 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.
@danielchalmers
danielchalmers merged commit cbb91f7 into dev Jul 27, 2026
4 checks passed
@danielchalmers
danielchalmers deleted the claude/remove-nuke branch July 27, 2026 03:52
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