/cake

Cake (C# Make) is a cross platform build automation system.

Primary LanguageC#MIT LicenseMIT

Cake

NuGet MyGet Chocolatey homebrew

Source Browser

Cake (C# Make) is a build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages.

Continuous integration

Build server Platform Build status Integration tests
AppVeyor Windows AppVeyor branch AppVeyor branch
Travis Linux / OS X Travis build status
TeamCity Windows TeamCity Build Status
Bitrise OS X Bitrise Build Status Build Status
Bitrise Linux Bitrise Build Status Build Status
Jenkins Windows Jenkins
Bamboo Windows Bamboo Build Status Bamboo Build Status
Visual Studio Team Services Windows VSTS Build Status
MyGet Build Services Windows MyGet Build Status  
Bitbucket Pipelines Linux Build Status Build Status
GitLabs Linux build status  

Code Coverage

Coverage Status

Table of Contents

  1. Documentation
  2. Example
  3. Contributing
  4. Get in touch
  5. License

Documentation

You can read the latest documentation at https://cakebuild.net/.

Example

This example downloads the Cake bootstrapper and executes a simple build script. The bootstrapper is used to bootstrap Cake in a simple way and is not in required in any way to execute build scripts. If you prefer to invoke the Cake executable yourself, take a look at the command line usage.

This example is also available on our homepage: https://cakebuild.net/docs/tutorials/setting-up-a-new-project

1. Install the Cake bootstrapper

The bootstrapper is used to download Cake and the tools required by the build script.

Windows
Invoke-WebRequest https://cakebuild.net/download/bootstrapper/windows -OutFile build.ps1
Linux
curl -Lsfo build.sh https://cakebuild.net/download/bootstrapper/linux
OS X
curl -Lsfo build.sh https://cakebuild.net/download/bootstrapper/osx

2. Create a Cake script

Add a cake script called build.cake to the same location as the bootstrapper script that you downloaded.

var target = Argument("target", "Default");

Task("Default")
  .Does(() =>
{
  Information("Hello World!");
});

RunTarget(target);

3. Run it!

Windows
# Execute the bootstrapper script.
./build.ps1
Linux / OS X
# Adjust the permissions for the bootstrapper script.
chmod +x build.sh

# Execute the bootstrapper script.
./build.sh

Contributing

So you’re thinking about contributing to Cake? Great! It’s really appreciated.

Make sure you've read the contribution guidelines before sending that epic pull request. You'll also need to sign the contribution license agreement (CLA) for anything other than a trivial change. NOTE: The .NET Foundation CLA Bot will provide a link to this CLA within the PR that you submit if it is deemed as required.

  • Fork the repository.
  • Create a branch to work in.
  • Make your feature addition or bug fix.
  • Don't forget the unit tests.
  • Send a pull request.

Get in touch

Follow @cakebuildnet

Join the chat at https://gitter.im/cake-build/cake

License

Copyright © .NET Foundation, Patrik Svensson, Mattias Karlsson, Gary Ewan Park, Alistair Chapman, Martin Björkström and contributors.

Cake is provided as-is under the MIT license. For more information see LICENSE.

Thanks

A big thank you has to go to JetBrains who provide each of the Cake Developers with an Open Source License for ReSharper that helps with the development of Cake.

The Cake Team would also like to say thank you to the guys at MyGet for their support in providing a Professional Subscription which allows us to continue to push all of our pre-release editions of Cake NuGet packages for early consumption by the Cake Community.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Contribution License Agreement

By signing the CLA, the community is free to use your contribution to .NET Foundation projects.

.NET Foundation

This project is supported by the .NET Foundation.