🛸 Tomorrow at 12:00 am
in Pacific Standard Time (UTC-08:00)
/ 9:00 am my time (CET)

I'll be speaking @dotnet Conf about using .NET file-based apps for your GitHub Actions DevOps workflow, using C# instead of YAML, for a more joyful experience🚀

https://www.youtube.com/@dotnet/live

#dotnet #devops #csharp

@devlead @dotnet @bot Ever since I heard what you plan to do with that Cake SDK and file-based apps on #dotnetrocks, this is my most anticipated talk at this year's #dotnetconf. I won't be able to watch it live but three hours later. I hope I'll still be able to ask questions. (We are in the same time zone, it seems).
@bitbonk @dotnet @bot fire away questions, hard to fit everything in 25 minutes, so won't be able to cover everything the Sdk provides.

@devlead Just watched it. Nice presentation and Cake.Sdk is pretty cool, especially now that we have file-based apps.

I am surprised that we can write our own SDKs and it will just pull some sort of SDK nupkg from nuget.org. What magic is that? Is this a new feature in .NET? Until now I was assuming that only Microsoft and the .NET SDK itself could do this.

@devlead Hm, yeah, it looks like this feature is already pretty old: https://reynders.co/blog/simplify-your-dotnet-with-custom-sdks/
Simplify your .NET with custom SDKs

By now we all are most probably building awesome microservices that can save the world from doom. Bootstrapping these microservices should be quick and painless so we can focus on the actual implementation. By using the .NET Core SDK we can quickly bootstrap an API containing all the goodness we

Fanie Reynders
@bitbonk it's actually not a new feature; it's just really poorly documented. It's been around since at least .NET 6, probably earlier.
Which is probably why almost all of them were written by Microsoft.
@devlead Having a small YAML files is great but there is a (somewhat minor) downside to having just one build step: The build output in the web UI is just one long stream of text and not so nicely structured in separate steps. Is there a way around this, maybe with an addin or module?
@bitbonk actually it doesn't need to be, if you add the buildsystem module you'll get folded logs, example:
https://github.com/cake-build/cakesdk-example/actions/runs/19280649637/job/55130822395

@devlead yes that folding is nice, but having actual steps with each their own log and status would be slightly cooler.

Potentially, could I write a tool (module?) that analyzes the Task-graph and generate a more detailed YAML file that calls the tasks individually?

@bitbonk maybe, but would probably add perf issues. If you want, I would probably create a job summary instead, maybe something the build system module could add

https://cakebuild.net/api/Cake.Common.Build.GitHubActions.Commands/GitHubActionsCommands/599C2EFA

Example result here
https://github.com/cake-build/cake/actions/runs/19279090106/attempts/1#summary-55125919175

Example usage
https://github.com/cake-build/cake/blob/cc71d61e16a12cf170aff99d0c6dac08627df654/tests/integration/Cake.Common/Build/GitHubActions/GitHubActionsProvider.cake#L93-L110

It's markdown, so you could create an ✅❌ table fairly easily.

Cake - API - GitHubActionsCommands.SetStepSummary(string) Method

@devlead ah that's cool, can we do something similar in Azure DevOps?
@devlead Another question: Is there a conceptual difference between a target and task? Why is the method called RunTarget instead of RunTask?
@bitbonk it's always been that, not new with the Sdk, similar to MSBuild has tasks, but you specify a target to execute.