Migrate build tool from nuke build to cake build cause nuke build seems to be discontinued#70
Merged
Merged
Conversation
- 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.
…d redundant properties.
- 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.
…g.Tasks` in `CleanTask`
…ildTask` for conditional `NoRestore` handling
…skipping restores
- 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.
…sole output rendering
- 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.
…sk teardown for consistency
…d `AddBuildServerIntegration` to `CakeBuildSample`.
…GitVersion.Tool` in `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:`.
…l installation logic
…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.
…d consistency in context naming.
…uild logic, settings, and configurations.
…kflow environments
… built-in hosting and clean up unused package references in projects.
…on workflow to use PowerShell build script
…f `sh` and `ps1`
… fix coverage report path in integration workflow
…ws for Cake.build integration.
… and add JetBrains annotations.
…ents; update GitVersion config for streamlined branch handling
…or build command for check functionality
…ersions) in build context output.
…configurations. Migrate to alternative build system.
Contributor
There was a problem hiding this comment.
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.
…ery, refine label, and set prevent-increment behavior
…ter name handling
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.
No description provided.