Description
Due to Apple licensing restrictions, macOS can only be run on Apple hardware. That means that CI services such as Travis CI are limited in the number of concurrent macOS builds based on the amount of actual hardware they have on hand (or can rent remotely, if that's even possible), whereas Linux builds can be parallelized using bare-metal hardware or VMs, including cloud providers, so they can easily scale elastically to meet demand.
As a result, Travis CI very quickly runs the Linux builds, but macOS builds are queued, and make take quite a bit longer to process. In other projects, I have run into issues where macOS builds were queued for a very long time, leading to blocked code reviews or finding out much later that the build had a basic issue, which is not visible if just looking at GitHub, the Travis status is "pending". I also noticed a similar situation
I would like to propose that the Jsonnet project consider making the following changes:
- macOS builds are marked as "optional", so their delays or failures don't block builds
- a build where Linux build succeeds is marked as "passing"
This can be done easily using .travis.yml
config.
This is especially the case if we add Bazel-based builds in addition to Make-based builds in issue #137.
Thoughts?