The matrix build for published platforms is getting extremely large.
It's no longer efficient or productive to run the unit tests during that
job. Instead, a much smaller job is now run prior to the Build job for
running tests.
There are only two cases we care about docker builds:
- On branches (not tags): To verify that we didn't break the docker
build.
- When a Github Release is published: To build & publish an official
docker image.
In the second case, the build should happen after the Github Release is
published, NOT when a tag is pushed.
Squashed commit of the following:
commit 673f4b7441d910cf25dce6842552a06bf5f76490
Author: Robert Dailey <rcdailey@gmail.com>
Date: Wed Nov 10 12:37:55 2021 -0600
Add SonarCloud integration
commit 5dfe5cf7a2c2a96ecdc0c684c605334460efbf73
Author: Robert Dailey <rcdailey@gmail.com>
Date: Wed Nov 10 12:46:40 2021 -0600
Reformat YAML
commit d210104ffee6fea81304312588e9fa89fb1a86f0
Author: Robert Dailey <rcdailey@gmail.com>
Date: Wed Nov 10 12:46:16 2021 -0600
Remove stale comments in build.yml
commit 66f18519c39b1cece888d7028cd2056d2f8dfbe3
Author: Robert Dailey <rcdailey@gmail.com>
Date: Wed Nov 10 12:44:28 2021 -0600
Set up schema for build.yml
- Executable is now compiled using Ready to Run. This increases the size
of the executable but makes the code much faster.
- `src` directory is no longer the cwd
- The matrix build in build.yml now runs on its respective platform to
avoid cross compilation. Cross compiling does not work with the
ReadyToRun optimization on, see:
https://docs.microsoft.com/en-us/dotnet/core/deploying/ready-to-run#cross-platformarchitecture-restrictions
- publish and zip steps in the workflow have been put in a powershell
script for reusability and to keep the workflow YAML minimal.