PleOps Cake
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
:
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:
Tip
Find a detailed setup guide in the documentation site.