Table of Contents

PleOps Cake MIT license

Complete DevOps workflow and best-practices for .NET projects based on Cake.

  • ♻️ DevOps best practices for a software project
  • 🔧 Build, test and release tasks for .NET projects and documentation sites
  • 📚 Documentation explaining the workflow
  • 📋 Template repository ready to use

Tech stack

  • Projects: C# / .NET
  • Documentation: DocFX, GitHub page
  • CI: GitHub Actions
  • Release deployment: NuGet feeds, GitHub

Usage

The project ships a NuGet library with Cake Frosting tasks:

  • Cake.Frosting.PleOps.Recipe: Package in NuGet

To use it, create a new console application with the Cake Frosting template, add a reference to this recipe NuGet and its tasks will be available to use.

return new CakeHost()
    .AddAssembly(typeof(Cake.Frosting.PleOps.Recipe.PleOpsBuildContext).Assembly)
    .UseContext<Cake.Frosting.PleOps.Recipe.PleOpsBuildContext>()
    .UseLifetime<BuildLifetime>()
    .Run(args);

[TaskName("Default")]
[IsDependentOn(typeof(Cake.Frosting.PleOps.Recipe.Common.SetGitVersionTask))]
[IsDependentOn(typeof(Cake.Frosting.PleOps.Recipe.Common.CleanArtifactsTask))]
[IsDependentOn(typeof(Cake.Frosting.PleOps.Recipe.Dotnet.DotnetTasks.BuildProjectTask))]
public sealed class DefaultTask : FrostingTask
{
}

Then just run the project to start the build system:

dotnet run --project build/orchestrator

Pushing commits will trigger a new continuous integration build with a similar output as this:

ci-output

Tip

Find a detailed setup guide in the documentation site.