Sitelet https://github.com/fluentassertions/fluentassertions/pull/3234
Skip to content

Convert the build pipeline from Nuke to Fallout - #3234

Merged
dennisdoomen merged 4 commits into
mainfrom
switch-to-fallout
Jun 6, 2026
Merged

dennisdoomen merged 4 commits into
mainfrom
switch-to-fallout

Conversation

@dennisdoomen

Copy link
Copy Markdown
Member

Summary

This PR converts the build pipeline from Nuke to Fallout.

Changes

  • Replaced Nuke-based build scripts with Fallout equivalents
  • Updated Build/_build.csproj to reference Fallout packages (Fallout.Common, Fallout.Components) instead of Nuke
  • Added supporting dependencies: LibGit2Sharp, NuGet.Packaging, SharpCompress, System.Security.Cryptography.Xml
  • Updated tool downloads: GitVersion.Tool, ReportGenerator, xunit.runner.console, PackageGuard

@github-actions

github-actions Bot commented Jun 5, 2026 •

Copy link
Copy Markdown

Test Results

    37 files  ±0      37 suites  ±0   2m 38s ⏱️ -15s
 6 386 tests ±0   6 385 ✅ ±0  1 💤 ±0  0 ❌ ±0 
39 662 runs  ±0  39 656 ✅ ±0  6 💤 ±0  0 ❌ ±0 

Results for commit f9d8081. ± Comparison against base commit bde4c01.

This pull request removes 10 and adds 8 tests. Note that renamed tests count towards both.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HaveLength ‑ When_a_throwing_stream_should_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HaveLength ‑ When_a_throwing_stream_should_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HavePosition ‑ When_a_throwing_stream_should_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HavePosition ‑ When_a_throwing_stream_should_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHaveLength ‑ When_a_throwing_stream_should_not_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHaveLength ‑ When_a_throwing_stream_should_not_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHavePosition ‑ When_a_throwing_stream_should_not_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHavePosition ‑ When_a_throwing_stream_should_not_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetLengthExceptionMessage'.)
Object name: 'GetPositionExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HaveLength ‑ When_a_throwing_stream_should_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetLengthExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HaveLength ‑ When_a_throwing_stream_should_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetLengthExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HavePosition ‑ When_a_throwing_stream_should_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetPositionExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+HavePosition ‑ When_a_throwing_stream_should_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetPositionExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHaveLength ‑ When_a_throwing_stream_should_not_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetLengthExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHaveLength ‑ When_a_throwing_stream_should_not_have_a_length_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetLengthExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHavePosition ‑ When_a_throwing_stream_should_not_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetPositionExceptionMessage'.)
FluentAssertions.Specs.Streams.StreamAssertionSpecs+NotHavePosition ‑ When_a_throwing_stream_should_not_have_a_position_it_should_fail(exception: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'GetPositionExceptionMessage'.)

♻️ This comment has been updated with latest results.

@coveralls

coveralls commented Jun 5, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 27067224620

Coverage remained the same at 97.138%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 13398
Covered Lines: 13173
Line Coverage: 98.32%
Relevant Branches: 4384
Covered Branches: 4100
Branch Coverage: 93.52%
Branches in Coverage %: Yes
Coverage Strength: 77525.41 hits per line

💛 - Coveralls

@github-actions

github-actions Bot commented Jun 5, 2026 •

Copy link
Copy Markdown

Qodana for .NET

It seems all right 👌

No new problems were found according to the checks applied

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Contact Qodana team

Contact us at qodana-support@jetbrains.com

@dennisdoomen
dennisdoomen requested a review from jnyrup June 5, 2026 16:53

@jnyrup jnyrup left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Just a few remaining mentions of nuke, otherwise looks good to me.

$ git grep -iI nuke
.fallout/build.schema.json:          "description": "Disables displaying the NUKE logo"
.fallout/build.schema.json:          "default": "Secrets must be entered via 'nuke :secrets [profile]'"
.fallout/build.schema.json:          "default": "Secrets must be entered via 'nuke :secrets [profile]'"
.github/dependabot.yml:      nuke:
.github/dependabot.yml:          - "Nuke*"
.github/workflows/build.yml:    - name: Cache .nuke/temp
.github/workflows/build.yml:          .nuke/temp
.github/workflows/build.yml:    - name: Run NUKE
.github/workflows/build.yml:    - name: Run NUKE
Build/Build.cs:       - JetBrains ReSharper        https://nuke.build/resharper
Build/Build.cs:       - JetBrains Rider            https://nuke.build/rider
Build/Build.cs:       - Microsoft VisualStudio     https://nuke.build/visualstudio
Build/Build.cs:       - Microsoft VSCode           https://nuke.build/vscode
Build/CustomNpmTasks.cs:using NukeDictionaryExtensions = Fallout.Common.Utilities.Collections.DictionaryExtensions;
Build/CustomNpmTasks.cs:        NodeDir = RootDirectory / ".nuke" / "temp";
README.md:Or, if you have, the [Nuke tool installed](https://nuke.build/docs/getting-started/installation/):
README.md:`nuke`
README.md:* [Nuke](https://nuke.build/) - Smart automation for DevOps teams and CI/CD pipelines by [Matthias Koch](https://github.com/matkoch)
agents.md:The project uses a [Nuke](https://nuke.build/)-based build system. The build scripts `build.sh` / `build.ps1` / `build.cmd` are thin wrappers around Nuke and support all standard Nuke targets.

Comment thread Build/_build.csproj Outdated
Comment thread Build/_build.csproj Outdated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@dennisdoomen dennisdoomen left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Thanks for the review! Addressed all remaining Nuke references in commit 1e60335.

dennisdoomen and others added 2 commits June 6, 2026 18:09
Co-authored-by: Jonas Nyrup <jnyrup@users.noreply.github.com>
Co-authored-by: Jonas Nyrup <jnyrup@users.noreply.github.com>
@dennisdoomen
dennisdoomen merged commit 3eacba9 into main Jun 6, 2026
14 checks passed
@dennisdoomen
dennisdoomen deleted the switch-to-fallout branch June 6, 2026 18:17
This was referenced Sep 14, 2026
This was referenced Oct 3, 2026
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.

3 participants