Repository navigation
Remove Nuke; switch CI and release to direct dotnet calls - #9772
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes Nuke-based build automation and replaces it with direct dotnet-driven CI/release steps plus lightweight helper scripts/actions. It shifts test-matrix generation to a composite action that reads src/All.slnx, and introduces a committed src/Build.Pack.slnx to drive release packing without Nuke.
Changes:
- Remove Nuke tooling/config (
.build/,.nuke/, dotnet-tools manifest) and legacybuild.*entrypoints. - Update CI/coverage workflows to generate the test matrix via a composite action parsing
src/All.slnx. - Update release workflow to pack/push/publish AOT binaries via direct
dotnetcommands; add new init/accept scripts (bash + PowerShell).
Reviewed changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/Build.Pack.slnx |
Adds a curated solution filter used for release-time dotnet pack. |
init.sh |
Rewrites initialization to dotnet restore + yarn (bash). |
init.ps1 |
Adds PowerShell init script equivalent for Windows. |
init.cmd |
Removes legacy Windows CMD init entrypoint. |
dictionary.txt |
Adds terms related to the new tooling/scripts. |
CONTRIBUTING.md |
Updates contributor docs to reflect Nuke removal and new init flow. |
build.sh |
Removes Nuke-based build entrypoint (bash). |
build.ps1 |
Removes Nuke-based build entrypoint (PowerShell). |
build.cmd |
Removes legacy CMD wrapper for build. |
accept.sh |
Rewrites snapshot acceptance script in bash (replaces Nuke target). |
accept.ps1 |
Adds PowerShell snapshot acceptance script equivalent. |
accept.cmd |
Removes legacy Windows CMD accept entrypoint. |
.nuke/parameters.json |
Removes Nuke parameters file. |
.gitignore |
Removes ignores for Nuke-specific artifacts/auto-generated solutions. |
.github/workflows/release.yml |
Switches pack/push/publish to direct dotnet calls; adds template version stamping; updates AOT publish step. |
.github/workflows/coverage.yml |
Switches matrix generation to the composite action. |
.github/workflows/ci.yml |
Switches matrix generation to the composite action. |
.github/actions/generate-test-matrix/action.yml |
Adds composite action that builds the CI matrix from src/All.slnx. |
.config/dotnet-tools.json |
Removes Nuke global tool manifest. |
.build/Helpers.cs |
Removes Nuke helper utilities (deleted). |
.build/Build.Version.cs |
Removes Nuke version logic (deleted). |
.build/Build.Tests.cs |
Removes Nuke test/coverage orchestration (deleted). |
.build/Build.Tests.2.cs |
Removes Nuke test orchestration (deleted). |
.build/Build.Sonar.cs |
Removes Nuke Sonar integration (deleted). |
.build/Build.slnx |
Removes Nuke build solution filter (deleted). |
.build/Build.Secrets.cs |
Removes Nuke secret parameters (deleted). |
.build/Build.Publish.cs |
Removes Nuke pack/publish/publishaot targets (deleted). |
.build/Build.Nitro.cs |
Removes Nuke Nitro updater target (deleted). |
.build/Build.GitHub.cs |
Removes Nuke GitHub parameter plumbing (deleted). |
.build/Build.Environment.cs |
Removes Nuke build environment constants/paths (deleted). |
.build/Build.csproj.DotSettings |
Removes IDE settings tied to Nuke build project (deleted). |
.build/Build.csproj |
Removes Nuke build project itself (deleted). |
.build/Build.cs |
Removes Nuke entrypoint/targets (deleted). |
.build/.editorconfig |
Removes editorconfig scoped to Nuke build sources (deleted). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced May 27, 2026
This was referenced Jun 1, 2026
This was referenced Jun 8, 2026
This was referenced Jun 16, 2026
This was referenced Jun 28, 2026
Closed
This was referenced Jul 5, 2026
This was referenced Aug 31, 2026
This was referenced Sep 8, 2026
This was referenced Sep 17, 2026
This was referenced Sep 28, 2026
This was referenced Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/All.slnx; release-time pack/publish/publishaot move to directdotnet pack/dotnet nuget push/dotnet publishinvocations.src/Build.Pack.slnxscoped to exactly the projects that emit nupkgs today (152 of them). It also picks upHotChocolate.Text.Json, which was missing from Nuke's hardcoded.build/Helpers.csdirectory list and so was never packed despite living insrc/. Generation criteria mirror Nuke'sHelpers.cs+PackLocalfilter (area-directory list, excludebenchmark/demo/sample/examplepaths, exclude filenames ending intests) and additionally exclude any csproj with<IsPackable>false</IsPackable>. Replaces Nuke's auto-generatedBuild.Pack.sln.init.sh/accept.shas bash; addinit.ps1/accept.ps1as PowerShell counterparts (Windows PowerShell 5.1 compatible, nopwshinstall required). Dropinit.cmd/accept.cmd— modern Windows runs local.ps1files directly under the defaultRemoteSignedexecution policy..build/,.nuke/,.config/,build.sh,build.ps1,build.cmd. Update.gitignore(drop Nuke-generated.slnentries) andCONTRIBUTING.md(remove Nuke mention).Notable behavior changes
HotChocolate.Text.Json.Tests— theHotChocolate/Jsonarea was missing from Nuke's hardcoded.build/Helpers.csdirectory list, so these tests never ran in CI. The new slnx-driven matrix picks them up, closing a long-standing gap.Demo.Catalog.Tests— Nuke's filename filter dropped anything containingdemo. The project lives undersrc/Mocha/test/and looks like a real test project. If it shouldn't run in CI, options are to rename it or add an explicit exclude in.github/actions/generate-test-matrix/action.yml.HotChocolate.Text.Json— same Json-area gap, on the pack side. Net change: +1 published nupkg per release. No projects removed from the pack set.Test plan
dotnet sln src/Build.Pack.slnx list— returns the expected 152 projects.dotnet restore src/Build.Pack.slnx— restores cleanly (the Marten NU1904 warning is pre-existing).src/All.slnx— produces 126 entries including the two newly-added test projects above.accept.ps1tested on Linux viapwshagainst a synthetic__mismatch__/layout (overwrites existing snapshots, deletes nested mismatches, removes the directory).init.ps1parse-checked underpwsh.dotnet pack/dotnet publishinvocations use-p:instead of/p:to dodge MSYS path-conversion on the Windows runners in thebuild-nitro-climatrix.