Free as in Cake

by

I love most forms of Cake and I've also been a bit of a build automation nut for nearly two decades now. So you can imagine my delight when I was able to combine these two passions with the CakeBuild.net project. At NDC Oslo today, Gary Ewan Park from the Cake project team announced that Cake was joining the .NET Foundation family. In this guest post, Gary explains more about the project. If it looks like it will be useful to you, I encourage you to give it a try and get involved in the growing community.

--Martin

What is Cake?

Cake is a cross platform build automation system, built on top of Roslyn and the Mono Compiler, which uses C# as the scripting language.

Currently, it supports running builds on:

  • Windows
  • Linux
  • OS X

cake

Why use C#? Aren't there already other build systems out there?

We firmly believe that creating a reliable and maintainable build automation script is best done in the same language as the application that you are building. For example, if you are working on a Powershell project, it might make sense to use something like psake. If doing a web application, perhaps something like gulp. Working on an F# project, you might want to use FAKE.

Although we agree that being a polyglot developer is definitely a good thing, using a build script as a mechanism to pickup a new language is not the best approach. This normally leads to two things:

  • lack of adoption of that language across the team that you are working in
  • only one person, the person who started it, being in charge of said build script

Rather, if the build script is written in the same primary language of the project, then everyone on the team can be immediately effective at altering/fixing that build script.

Become immediately effective

On top of the fact that Cake allows you to create build scripts using a common language, out of the box, it has support for almost 30 of the most common build tools, including:

  • MSBuild
  • NUnit
  • XUnit
  • WiX
  • GitVersion
  • many others...

In addition, thanks to our growing and dedicated community members, we have almost 40 other build tools available via the addin mechanism which is baked into Cake. These addins include support for tools like:

  • Xamarin
  • CMake
  • Gulp
  • Npm
  • many others...

Ok, so how do I get started with Cake?

The best place to start with Cake would be the getting started guide. This will walk you through the process of using Cake to build an example project. From there, you can follow the setting up a new project guide.

More information

If you want to keep up to date with what is going on with Cake, be sure to subscribe to our blog feed and you can also follow us on twitter. In addition, if you have any questions or problems with Cake, you can join the Gitter chat room. There is almost always someone in the chat room, so feel free to ask any questions that you might have. Be sure to give cakebot, our resident hubot a botsnack when you drop by!

Thank You

Thank you very much for you interest in Cake, we truly hope that you find it as useful a tool as we have. Happy building! --Gary

Gary Ewan Park (@gep13), Project Maintainer, Cake (on behalf on the Cake maintainers and committers)