Run tests on multiple CI executors
Circle CI supports multiple executor types including MacOS and Windows, so we should try to run the tests in multiple different executors to cover more compatibility checks:
- [x] Alpine
- [x] MacOS
- [x] Ubuntu
- [ ] BSD
- [ ] Windows
I'm not sure we'll be able to get BSD because CircleCI doesn't seem to support it. And trying to get it via Docker is spotty at best. Someone smarter than me may need to figure that out.
I think Arch would be a good one to add since that has seemed to come up a bit recently
I think that what you had to do to make this work on CircleCI has made me dislike CircleCI even more.
I'd be for searching for CI services that cater more to BSD and Windows and using them instead of trying to shoehorn anything more into the CircleCI script. Appveyor is certainly "ok" for Windows builds. Not sure on BSD, but there's probably something out there.
Fwiw, the Circle CI stuff I did was attempting to use their "reusable" code - I think it can be much more simplified by explicitly defining each job and then copy/pasta whenever we add more. The CI config will be huge, but still work just fine
Looks like Cirrus CI is what we want as it seems to be the only CI that supports all these OS + FreeBSD
https://cirrus-ci.org/features/