Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ New recipe design with Cake Frosting #67

Merged
merged 29 commits into from
Oct 8, 2023
Merged

✨ New recipe design with Cake Frosting #67

merged 29 commits into from
Oct 8, 2023

Conversation

pleonex
Copy link
Owner

@pleonex pleonex commented Oct 7, 2023

Description

Re-design of the recipe for Cake using C# library (Cake Frosting).

  • Migrate Cake script recipes into a Cake Frosting C# library
    • It requires to create build orchestrators as console or dotnet-script projects
  • Renamed into Cake.Frosting.PleOps.Recipe to follow conventions
  • Create new build system as console app
  • Move build tools dependencies and versioning into the dotnet tool manifest .config/dotnet-tools.json
  • Create sample projects and build system for testing
  • Update CI for new build system and bump .NET SDK
  • Configure SourceLink

New design:

  • Project setup/definition happens in the user lifetime setup
  • New build context extensible and re-organized
  • New task groups per type of technology
  • Added support for Cake.Issues although it's disabled due to external issues (in Cake.Git 😑)
  • No more dependencies with Git libraries, used only via CLI --> no more issues due to native libraries and incompatible glibc
  • 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 rather reading .csproj
  • Pack/Publish .NET apps depending on the <IsPackable> and <IsPublishable> 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't generate preview release notes unless there is a draft GitHub release
  • It doesn't create anymore draft releases
  • It doesn't rename or close GitHub milestones
  • It doesn't push docs to GitHub page --> to be done via official GitHub action

Example

Example build system available at src/Cake.Frosting.PleOps.Samples.BuildSystem as console app and in src/DotnetScriptSample/build.csx as a dotnet-script

This closes #66, #63, #37

@pleonex pleonex added the enhancement New feature or request label Oct 7, 2023
@pleonex pleonex self-assigned this Oct 7, 2023
@pleonex pleonex linked an issue Oct 8, 2023 that may be closed by this pull request
@pleonex pleonex merged commit ac9064a into main Oct 8, 2023
2 checks passed
@pleonex pleonex deleted the feature/frosting branch October 8, 2023 13:45
@pleonex pleonex added this to the vNext milestone Nov 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Re-design with FrostingTasks Move setup logic to the consumer project Prefix task names with PleOps
1 participant