Skip to content

chore: migrate the build pipeline from NUKE to Fallout - #142

Merged
vbreuss merged 1 commit into
mainfrom
chore/migrate-nuke-to-fallout
Sep 4, 2026
Merged

chore: migrate the build pipeline from NUKE to Fallout#142
vbreuss merged 1 commit into
mainfrom
chore/migrate-nuke-to-fallout

Conversation

@vbreuss

@vbreuss vbreuss commented Sep 4, 2026

Copy link
Copy Markdown
Member

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.

@vbreuss vbreuss self-assigned this Sep 4, 2026
Copilot AI lite review requested due to automatic review settings September 4, 2026 17:04
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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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.* to Fallout.* (including Nuke.Common.ProjectModelFallout.Solutions) and updates the build entrypoint base class to FalloutBuild.
  • Pins build-host-sensitive tooling by adding a NuGet.Frameworks 7.9.0 version pin and updating .NET SDK pinning (global.json + workflows) to the 10.0.3xx band.
  • Updates bootstrap scripts, dependabot grouping, and ignores Fallout temp outputs (.fallout/temp/), plus wires Fallout’s global tool to Pipeline/Build.csproj via .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.

Copilot AI review requested due to automatic review settings September 4, 2026 17:13
@vbreuss
vbreuss force-pushed the chore/migrate-nuke-to-fallout branch from 80543fd to d8ea064 Compare September 4, 2026 17:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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 FalloutBuild schema definition, the NoLogo option 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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Test Results

    8 files  ±0      8 suites  ±0   50s ⏱️ +5s
  246 tests ±0    245 ✅ ±0  1 💤 ±0  0 ❌ ±0 
1 645 runs  ±0  1 644 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit d8ea064. ± Comparison against base commit 5f6ba2b.

@sonarqubecloud

sonarqubecloud Bot commented Sep 4, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

👽 Mutation Results

Mutation testing badge

aweXpect.Mockolate

Details
File Score Killed Survived Timeout No Coverage Ignored Compile Errors Runtime Errors Total Detected Total Undetected Total Mutants

The final mutation score is NaN%

Coverage Thresholds: high:80 low:60 break:0

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.11 (10.0.11, 10.0.1126.37416), X64 RyuJIT x86-64-v3
DefaultJob : .NET 10.0.11 (10.0.11, 10.0.1126.37416), X64 RyuJIT x86-64-v3

Method Mean Error StdDev Median Allocated
Dummy_aweXpect 0.0004 ns 0.0012 ns 0.0010 ns 0.0 ns -

@vbreuss
vbreuss merged commit ed02dd6 into main Sep 4, 2026
13 checks passed
@vbreuss
vbreuss deleted the chore/migrate-nuke-to-fallout branch September 4, 2026 19:08
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

This is addressed in release v3.2.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state: released The issue is released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants