Cake.Frosting.PleOps.Recipe 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Cake.Frosting.PleOps.Recipe --version 1.0.0
NuGet\Install-Package Cake.Frosting.PleOps.Recipe -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cake.Frosting.PleOps.Recipe" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cake.Frosting.PleOps.Recipe --version 1.0.0
#r "nuget: Cake.Frosting.PleOps.Recipe, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Cake.Frosting.PleOps.Recipe as a Cake Addin
#addin nuget:?package=Cake.Frosting.PleOps.Recipe&version=1.0.0

// Install Cake.Frosting.PleOps.Recipe as a Cake Tool
#tool nuget:?package=Cake.Frosting.PleOps.Recipe&version=1.0.0

<p align="center"> <a href="https://www.nuget.org/packages/Cake.Frosting.PleOps.Recipe"> <img alt="Stable version" src="https://img.shields.io/nuget/v/Cake.Frosting.PleOps.Recipe?label=nuget.org&logo=nuget" /> </a>   <a href="https://dev.azure.com/benito356/NetDevOpsTest/_packaging?_a=feed&feed=PleOps"> <img alt="GitHub commits since latest release (by SemVer)" src="https://img.shields.io/github/commits-since/pleonex/PleOps.Cake/latest?sort=semver" /> </a>   <a href="https://github.com/pleonex/PleOps.Cake/workflows/Build%20and%20release"> <img alt="Build and release" src="https://github.com/pleonex/PleOps.Cake/workflows/Build%20and%20release/badge.svg?branch=main&event=push" /> </a>   <a href="https://choosealicense.com/licenses/mit/"> <img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat" /> </a>   </p>

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

Get started

Check out the documentation site to start learning how to use the library.

Feel free to ask any question in the project discussion.

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
{
}

[!TIP]
Find a detailed setup guide in the documentation site.

Preview releases

Preview releases are in an Azure DevOps NuGet feed. Add a nuget.config file in the repository root directory with the following content:

<?xml version="1.0" encoding="utf-8"?>

<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="PleOps-Preview" value="https://pkgs.dev.azure.com/benito356/NetDevOpsTest/_packaging/PleOps/nuget/v3/index.json" />
  </packageSources>
  <packageSourceMapping>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
    <packageSource key="PleOps-Preview">
      <package pattern="Cake.Frosting.PleOps.Recipe" />
    </packageSource>
  </packageSourceMapping>
</configuration>

Build

The project requires to build .NET 8.0 SDK.

To build, test and generate artifacts run:

# Build and run tests (with code coverage!)
dotnet run --project build/orchestrator

# (Optional) Create bundles (nuget, zips, docs)
dotnet run --project build/orchestrator -- --target=Bundle

To build (and test) the recipe against the examples run:

dotnet run --project src/Cake.Frosting.PleOps.Samples.BuildSystem

Release

Create a new GitHub release with a tag v{Version} (e.g. v2.4) and that's it! This triggers a pipeline that builds and deploy the project.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.3 210 1/31/2024
1.0.2 388 12/19/2023
1.0.1 487 11/23/2023
1.0.0 238 11/23/2023

## v1.0.0 (November 23, 2023)


This release brings a new design of the Cake recipe using _Cake Frosting_ and full project documentation.

## Documentation

Find the new documentation in &lt;https://www.pleonex.dev/PleOps.Cake&gt;. It includes:

- [Detailed setup guide](https://www.pleonex.dev/PleOps.Cake/docs/getting-started/tutorial.html)
- [Checklist](https://www.pleonex.dev/PleOps.Cake/docs/getting-started/setup-checklist.html)
- [Pipeline workflows](https://www.pleonex.dev/PleOps.Cake/docs/workflows/pipeline.html)
- Strategies for [versioning](https://www.pleonex.dev/PleOps.Cake/docs/workflows/versioning.html) and [gitflow](https://www.pleonex.dev/PleOps.Cake/docs/workflows/gitflow.html)
- Full [recipe](https://www.pleonex.dev/PleOps.Cake/docs/recipe/overview.html) documentation with task description and build context properties.

## Cake recipe

The previous NuGet is deprecated and there won&apos;t be new releases. The new Frosting based recipes can be found in the NuGet: `Cake.Frosting.PleOps.Recipe`. To use the recipe create a regular C# console application or use dotnet-script. Instructions in the new docs.

This new recipe brings the following changes:

- Support .NET 8 and Cake 4
- Project setup/definition (previous task `Define-Project`) now it happens in the build lifetime setup class
- New build context extensible
- New tasks grouped per technology
- Added incremental build concept to prevent cleaning artifacts dir each time
- New task to restore dotnet tools
- New task to set the version from GitVersion
- Deliveries paths are serialized into a json file to get deterministic behavior instead of folder and extension conventions
- Upgrade to new DocFx dotnet-tool CLI
- Publish .NET apps from user provided information in build context rather parsing .csproj
- Pack .NET libraries now from solution, customizable via `&lt;IsPackable&gt;`  tags in .csproj instead of specifying projects manually
- New task to restore .NET dependencies
- GitHub repo info is read from environment variable rather parsing `git remote`

### Limitations

- It doesn&apos;t generate preview release notes unless there is a draft GitHub release
- It doesn&apos;t create anymore draft releases
- It doesn&apos;t rename or close GitHub milestones
- It doesn&apos;t push docs to GitHub page. Use the official GitHub Action task

## What&apos;s Changed
* :sparkles: New recipe design with Cake Frosting by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/67, https://github.com/pleonex/PleOps.Cake/pull/68
* ✨ New documentation theme and format by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/69
* ⬆️ Review and update C# style and coding rules by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/70
* 🔼 Migrate to .NET 8.0 by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/71
* 🔧 Refactor workflow into reusable files by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/72
* 📚 Document project by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/73, https://github.com/pleonex/PleOps.Cake/pull/75
* 🐛 Small fixes and improvements by @pleonex in https://github.com/pleonex/PleOps.Cake/pull/74


**Full Changelog**: https://github.com/pleonex/PleOps.Cake/compare/v0.8.0...v1.0.0