chore: migrate the build pipeline from NUKE to Fallout - #142
Conversation
NUKE no longer supports the .NET SDK the build agents install, so CI fails before it reaches any target. This ports the migration the core repository made in Testably/aweXpect#1017. - Rename `.nuke` to `.fallout` and point the Fallout global tool at `Pipeline/Build.csproj` through `BuildProjectFile` in `parameters.json`. - Replace Nuke.Common/Nuke.Components 10.1.0 with Fallout.Common/ Fallout.Components 10.4.0 and rewrite the pipeline namespaces: `Nuke.Common.ProjectModel` becomes `Fallout.Solutions`, everything else `Fallout.Common.*`. - Pin NuGet.Frameworks to 7.9.0: the SDK's MSBuild expects `NuGet.Frameworks 7.9.0.0` while the build host otherwise resolves 6.x transitively, which breaks in-process project evaluation. - Pin the SDK to the 10.0.3xx band in `global.json` and the workflows. `global.json`, the workflow `dotnet-version` lists and the NuGet.Frameworks pin have to be bumped together from now on. - Drop the NUKE enterprise feed handling from the bootstrap scripts and ignore `.fallout/temp/`. Fallout 10.4.0 is the latest listed release; the entire 11.0.x band is unlisted on nuget.org. Verified locally: the pipeline project compiles, `--help` lists every target, and `UnitTests` and `Pack` succeed in Release.
There was a problem hiding this comment.
🟢 Approval recommended
The migration appears complete and internally consistent (no remaining NUKE references found), with SDK and NuGet version pins updated across both local and CI entrypoints.
Pull request overview
This pull request migrates the repository’s build/CI pipeline from NUKE to Fallout to restore compatibility with the .NET SDK installed on build agents and prevent CI from failing before reaching any targets.
Changes:
- Migrates pipeline code and dependencies from
Nuke.*toFallout.*(includingNuke.Common.ProjectModel→Fallout.Solutions) and updates the build entrypoint base class toFalloutBuild. - Pins build-host-sensitive tooling by adding a
NuGet.Frameworks7.9.0 version pin and updating .NET SDK pinning (global.json+ workflows) to the10.0.3xxband. - Updates bootstrap scripts, dependabot grouping, and ignores Fallout temp outputs (
.fallout/temp/), plus wires Fallout’s global tool toPipeline/Build.csprojvia.fallout/parameters.json.
File summaries
| File | Description |
|---|---|
| Pipeline/Configuration.cs | Switches tooling import to Fallout. |
| Pipeline/BuildExtensions.cs | Updates GitHub Actions / GitVersion / SonarScanner imports to Fallout. |
| Pipeline/Build.UnitTest.cs | Migrates build target code imports to Fallout and Fallout.Solutions. |
| Pipeline/Build.Pack.cs | Migrates pack target code imports to Fallout and Fallout.Solutions. |
| Pipeline/Build.MutationTests.cs | Migrates mutation test pipeline to Fallout and updates Octokit product header. |
| Pipeline/Build.csproj | Replaces NUKE packages with Fallout packages and adds NuGet.Frameworks reference. |
| Pipeline/Build.cs | Updates build entrypoint to FalloutBuild and Fallout namespaces. |
| Pipeline/Build.Compile.cs | Migrates compile target imports to Fallout. |
| Pipeline/Build.CodeCoverage.cs | Migrates ReportGenerator task imports to Fallout. |
| Pipeline/Build.CodeAnalysis.cs | Migrates SonarScanner task imports to Fallout. |
| Pipeline/Build.Benchmarks.cs | Migrates benchmark pipeline to Fallout and updates Octokit product header. |
| Pipeline/Build.ApiChecks.cs | Migrates API checks pipeline imports to Fallout and Fallout.Solutions. |
| global.json | Pins SDK to 10.0.300 with latestPatch roll-forward within the feature band. |
| Directory.Packages.props | Central package updates: Fallout 10.4.0 + NuGet.Frameworks 7.9.0 pin. |
| build.sh | Uses .fallout/temp and removes NUKE enterprise feed bootstrapping. |
| build.ps1 | Uses .fallout/temp and removes NUKE enterprise feed bootstrapping. |
| .gitignore | Ignores .fallout/temp/ outputs. |
| .github/workflows/ci.yml | Pins workflow SDK install to 10.0.3xx. |
| .github/workflows/ci-analysis.yml | Pins workflow SDK install to 10.0.3xx. |
| .github/workflows/build.yml | Pins workflow SDK install to 10.0.3xx. |
| .github/dependabot.yml | Renames update group from nuke to fallout and updates matching patterns. |
| .fallout/parameters.json | Points Fallout global tool runner at Pipeline/Build.csproj via BuildProjectFile. |
| .fallout/build.schema.json | Renames schema base definition to FalloutBuild, adds BuildProjectFile, and updates secrets guidance text. |
Review details
- Files reviewed: 22/23 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
80543fd to
d8ea064
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
It changes the build toolchain and CI execution path broadly enough that it warrants a final human verification on the actual CI environment.
Review details
Suppressed comments (1)
.fallout/build.schema.json:62
- Within the
FalloutBuildschema definition, theNoLogooption description still references the "NUKE" logo, which is now misleading after the Fallout migration.
- Files reviewed: 22/23 changed files
- Comments generated: 0 new
- Review effort level: Lite
|
🚀 Benchmark ResultsDetails
|
|
This is addressed in release v3.2.0. |



NUKE no longer supports the .NET SDK the build agents install, so CI fails before it reaches any target. This ports the migration the core repository made in Testably/aweXpect#1017.
.nuketo.falloutand point the Fallout global tool atPipeline/Build.csprojthroughBuildProjectFileinparameters.json.Nuke.Common.ProjectModelbecomesFallout.Solutions, everything elseFallout.Common.*.NuGet.Frameworks 7.9.0.0while the build host otherwise resolves 6.x transitively, which breaks in-process project evaluation.global.jsonand the workflows.global.json, the workflowdotnet-versionlists and the NuGet.Frameworks pin have to be bumped together from now on..fallout/temp/.Fallout 10.4.0 is the latest listed release; the entire 11.0.x band is unlisted on nuget.org.
Verified locally: the pipeline project compiles,
--helplists every target, andUnitTestsandPacksucceed in Release.