I finally sat down and put this together, I re-worked our build based on some experience from Brandywine and other things.
A few of the main features:
The build is now separated into a workflow, this allows re-use and encapsulation. All we care about with the build is that it produces unit tested NuGet packages and spits out a version.
Once the build is complete, a tag is created and the packages pushed up to GitHub packages.
If running on the main branch, we'll create a draft release with the new tag and all build artifacts.
A couple things that aren't done yet
[x] Smoke Testing the produced packages. I want to make sure we can reference and build projects using netframework, netstandard, and netcore (see .github/workflows/package-tests.yml.github/workflows/smoke-tests.yml).
[x] Software Bill of Materials - you probably remember hearing me talk about that before we were laid off, but this is a good excuse to learn the tools (since we may be required to in the future).
[x] CLI Smoke Testing - Similar to the package tests, I want to make sure someone can dotnet tool install hot potato and be able to run the CLI.
I finally sat down and put this together, I re-worked our build based on some experience from Brandywine and other things.
A few of the main features:
A couple things that aren't done yet
.github/workflows/package-tests.yml
.github/workflows/smoke-tests.yml
).dotnet tool install hot potato
and be able to run the CLI.