Building a Deployment Pipeline with C# and Cake
Cake is an open source cross-platform build automation tool with a surprisingly rich ecosystem of integrations to third-party tools and services. And the best part is: it uses a beautiful C# DSL that will make you feel right at home.
In this 2-Day workshop, you will learn everything you need to know to automate a complete build and deployment pipeline for a modern ASP.NET Core 3.0 web application using nothing more than C# and Cake. The list of topics include:
- Compiling using MSBuild and the .NET Core CLI tools
- Running automated tests and measuring code coverage
- Building a web front-end using Node.js
- Versioning based on the Git history of the project
- Packaging with NuGet or as regular Zip files
- Packaging the application as a Docker container
- Deploying to an on-premises web server using Octopus Deploy
- Deploying to an Azure Web App using Kudu
- Deploying to a containerized Azure Web App using Docker and the Azure Container Registry
- Integrating with CI servers such as TeamCity, Azure Pipelines and GitHub Actions
- Troubleshooting the pipeline with logging and debugging
By the end of the workshop, you will know how to apply your existing C# and .NET skills to automate a modern build and deployment pipeline — as a bonus, you'll also learn how to write maintainable build scripts that can adapt as the needs of your software change.
Attendees will need to bring a laptop with Windows and the following software installed:
- Visual Studio Code
- PowerShell or Bash
- .NET Core 3.0 SDK
- .NET Framework 4.6.1 or later SDK
- Docker Desktop
Attendees should also have access to a GitHub account.
Enrico is a freelance programmer, teacher and mentor with a strong passion for acquiring and sharing knowledge. If allowed, he'll happily talk for hours about software quality, the DevOps culture, the history of personal computing or mechanical keyboards. One topic he's particularly fond of is Git, which, as he discovered, combines two of his other great passions: the Unix philosophy and source code history.
When it comes to teaching, Enrico speaks regularly at conferences and user groups, delivers workshops and produces online courses for Pluralsight.
He occasionally manages to do some open source work by contributing to AutoFixture—a .NET library for generating test data during unit testing—and by maintaining Cake.Curl, an addin for Cake that lets you invoke curl from a build script.
Enrico can be found online on his website at megakemp.com or on Twitter at @ecampidoglio