Skip to content

Migrate build tool from nuke build to cake build cause nuke build seems to be discontinued#70

Merged
darthsharp merged 73 commits into
mainfrom
feature/migratefromnuketocake
Jan 11, 2026
Merged

Migrate build tool from nuke build to cake build cause nuke build seems to be discontinued#70
darthsharp merged 73 commits into
mainfrom
feature/migratefromnuketocake

Conversation

@darthsharp

Copy link
Copy Markdown
Contributor

No description provided.

- Introduced `BuildContext` for managing solution, Git root, and executed tasks.
- Added foundational task templates (`BuildTask`, `CleanTask`, `RestoreTask`, etc.) and default implementations.
- Included CakeHost extensions for task registration and setup.
- Created sample project demonstrating the usage of custom tasks.
- Updated solution file to include new `CakeBuild` projects and samples.
…d context initialization improvements

- Renamed `CleanTask` to properly align task names with functionality.
- Enhanced `BuildContext` to include solution file auto-detection, default build configuration, and Git version integration.
- Simplified `BuildTask` templates and adjusted configuration handling.
- Updated `CakeHost` sample with task registration and streamlined workflow.
- Refactored project files for consistent dependencies and task integration.
… block for improved diagnostics, and refine `GitVersion.yml` configuration

- Replace `tag` with `label` for branch definitions.
- Adjust formatting for improved YAML readability.
- Added `tag-prefix` and `semantic-version-format` properties for improved version tagging.
- Simplified branch definitions by removing unused branches (`develop`, `support`, `hotfix`).
- Adjusted `pull-request` label from `PullRequest` to `PR`.
- Implement `RunAsync` method, invoking `DotNetClean` and deleting `bin`/`obj` directories.
- Introduce private `DeleteDirectories` method to simplify directory cleanup logic with glob patterns and logging.
…ildTask` for conditional `NoRestore` handling
- Introduce settings interfaces for task templates (`ICleanTaskSettings`, `ITestTaskSettings`, etc.).
- Refactor `BuildContext` to enhance modularity and reuse of Git root path logic.
- Add `UseBuildSetup` integration to `CakeHost` for streamlined build setup logic.
…alifier

- Update `GitVersion.Tool` to version `6.5.1` in build project dependencies
…ust deploy step

- Upgraded `actions/checkout` to version 5 for compatibility.
- Commented out caching and artifact upload steps.
- Modified the `DeployNuGet` step to run a specific build command within the `CakeBuildSample` directory.
…ove redundant configuration in solution file.
…ance `CakeHost` with settings support

- Introduced `[CakeTaskSettings]` attribute to annotate task settings interfaces.
- Refactored `CakeHost.UseBuildSetup` to inject and register task-specific settings interfaces.
- Added missing `using` directives and improved modularity in task setup.
- Introduced `SomeTaskSetup` and `SomeTaskTeardown` to handle task-specific logic.
- Integrated GitHub Actions group commands for improved build log readability.
… functionality

- Added `SetupHost`, `AddDefaultTasks`, and `AddBuildServerIntegration` extension methods to streamline configuration.
- Replaced custom task setup and teardown (`SomeTaskSetup` and `SomeTaskTeardown`) with reusable GitHub Actions integrations (`StartGroupTaskSetup` and `EndGroupTaskTeardown`).
- Updated `CakeBuildSample` to utilize new streamlined APIs.
… streamlined Cake build setup

- Corrected `UnkownParamName` to `UnknownParamName` across all methods in `Ensure.cs`.
- Introduced `ICakeHostBuilder` interface and its implementation, `CakeHostBuilder`, for simplifying Cake build configuration.
- Updated `CakeHostExtensions` and `CakeBuildSample` to leverage the new `CakeHostBuilder`.
…flexibility

- Removed redundant interfaces (`IDefaultBuildSetup`, `IBuildPaths`, `ICakeBuildSettings`, etc.).
- Introduced `IBuildContext` and `IBuildContextAccessor` to centralize build context management.
- Updated `CleanTask` and `BuildTask` to leverage `ICleanTaskSettings`, improving task-specific configuration.
- Refactored `BuildContext` to streamline directory and configuration management.
- Simplified sample project setup using the new `SampleBuildContext`.
…urable settings and enhance `BuildTask` syntax consistency
…ution and enhance GitHub Actions integration

- Introduced `RunAsyncCore` as a protected abstract method in `FrostingTaskBase`, replacing `RunAsync` in derived tasks.
- Added GitHub Actions group logging for better task execution visibility.
- Updated all template tasks to implement `RunAsyncCore` with appropriate logic or placeholders.
…d `AddBuildServerIntegration` to `CakeBuildSample`.
…`CakeBuildSample`

- Replaced `Version` property in `BuildContext` with a computed getter using `GetGitVersionSafe`.
- Updated `GitVersion.Tool` URI scheme in `CakeBuildSample` to use `dotnet:` instead of `nuget:`.
…tool setup logic

- Introduced `InstallTools` method in `ICakeHostBuilder` for streamlined tool installation.
- Created `ToolInstallation`, `DotNetToolInstallation`, and `NuGetToolInstallation` classes for better type safety and tool configuration.
- Refactored `CakeBuildSample` to use the new `InstallTools` API, replacing inline tool path and installation logic.
… built-in hosting and clean up unused package references in projects.
… fix coverage report path in integration workflow
…ents; update GitVersion config for streamlined branch handling
…configurations. Migrate to alternative build system.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the build system from Nuke Build to Cake Build. The PR comprehensively replaces the build infrastructure while maintaining the same build capabilities, including clean, restore, build, test, code coverage, pack, and NuGet push operations.

Changes:

  • Removed entire NukeBuild source directory and related test projects
  • Added new CakeBuild implementation with similar functionality
  • Updated build scripts (build.sh, build.ps1, build.cmd) to use the new Cake-based build project
  • Migrated GitHub Actions workflows to use Cake Build commands
  • Fixed spelling error in Ensure.cs ("Unkown" → "Unknown")
  • Added new CastAs extension method in ObjectExtensions.cs
  • Removed unused package references from several projects

Reviewed changes

Copilot reviewed 127 out of 127 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
source/CakeBuild/CreativeCoders.CakeBuild/* New Cake Build implementation with tasks, templates, and build context
build/* New build project using Cake Build framework
tests/CreativeCoders.NukeBuild.Tests/* Removed NukeBuild test project
tests/CreativeCoders.MiscTest.UnitTests/* Removed NukeBuild tests and dependencies
build.sh, build.ps1 Updated build scripts to use new Cake Build project
.github/workflows/* Updated CI/CD workflows for Cake Build
source/Core/CreativeCoders.Core/Ensure.cs Fixed spelling error
source/Core/CreativeCoders.Core/ObjectExtensions.cs Added CastAs extension method
GitVersion.yml Updated configuration for simplified branching strategy
Core.sln Removed NukeBuild projects, added CakeBuild projects
Comments suppressed due to low confidence (1)

source/CakeBuild/CreativeCoders.CakeBuild/Tasks/Templates/Settings/PackageLicenseExpressions.cs:3

  • The namespace has been changed from 'CreativeCoders.NukeBuild.BuildActions' to 'CreativeCoders.CakeBuild.Tasks.Templates.Settings', which is correct for the migration. However, ensure that this file is properly integrated with the new CakeBuild structure and that the license expressions are used consistently throughout the new implementation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/CreativeCoders.AspNetCore.Tests/TokenAuth/Jwt/TestServerContext.cs Outdated
@darthsharp
darthsharp merged commit 46eb300 into main Jan 11, 2026
6 checks passed
@darthsharp
darthsharp deleted the feature/migratefromnuketocake branch January 11, 2026 11:22
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.

2 participants