What it is
Cake, called C# Make, is cross-platform build automation system. It lives in .NET ecosystem. It lets developers write build logic in C#. That logic can compile code, copy files and folders, run unit tests, compress files, build NuGet packages. Project is MIT-licensed C# software. It provides Cake .NET Tool, Cake Frosting, Cake SDK packages.
Problem Cake solves is need to turn common .NET build tasks into repeatable scripts. Those scripts can run across operating systems and inside continuous-integration pipelines. Instead of only shell commands or tool-specific configuration, team can express compile, test, package, file-handling steps through C# domain-specific language. README and topics point to build automation, build tool, dotnet, dotnetcore, NuGet, NUnit, continuous-integration.
Key capabilities
- Cake provides C# domain-specific language for build scripts.
- It can compile code during build workflow.
- It can copy files and folders during build or packaging tasks.
- It can run unit tests, with NUnit topic indicating test execution support.
- It can compress files during build workflow.
- It can build NuGet packages, connecting Cake to .NET package ecosystem.
- It offers Cake .NET Tool, Cake Frosting, Cake SDK runners, with released versions on NuGet and development versions on Azure Artifacts.
Who uses it and how
- .NET developers use Cake to script build steps: compile source code, copy build outputs, run tests, produce NuGet packages.
- Teams using continuous integration can place Cake inside automated pipelines, because topics and README describe continuous-integration support.
- Cake project is built on Windows, macOS, Debian, Fedora, CentOS, Ubuntu through Azure Pipelines, AppVeyor, TeamCity, Bitrise.
- Users preferring package-based installation obtain Cake runners from NuGet for released versions or Azure Artifacts for development versions.
- Projects already using NuGet and NUnit can use Cake to connect build execution, test execution, package creation.
Getting started
Install released Cake runner such as Cake .NET Tool, Cake Frosting, Cake SDK from NuGet. Use Azure Artifacts development feed when development build needed.
When to use it — and when not to
Cake fits when team already works in C# and .NET and wants build scripts across platforms, integrated with NuGet and NUnit. It is less suitable if hosted build service needed, because README describes package installation and runners, not hosted option. Repository has open issues, so check current state of specific runner or package before adopting Cake for build pipeline.