We currently only run CI on the tier 1 platforms x86_64-darwin, x86_64-linux-gnu and i386-linux-gnu, but Crystal supports many more targets.
Having other targets on CI is more complicated. Unfortunately, it's difficult to integrate native ARM or BSD systems into our CI setup because they're not readily available.
At least x86_64-linux-musl is in grasp (#6943) though.
While not being able to run the specs on these target platforms, there could be a simple smoke test to ensure that the specs at least cross compile for that target. This way we can ensure that at least Crystal's code generation for the specific target doesn't fail. Without linking and executing, we still don't know if it runs and if it is actually plausible. But it could help to catch syntax or semantic error in platform-specific code.
Example:
find src/lib_c -maxdepth 1 -mindepth 1 -type d -printf '%f\0' | \
xargs -0 -I'{}' make .build/std_spec clean FLAGS='--cross-compile --target {}
It would probably be enough to run this prior to a release or on nightly builds, not on every PR.
Original idea was in #6943
Just in case, there is https://drone.io/ that supports ARM and https://cirrus-ci.org/ for FreeBSD.
I'm not saying that's another CIs to support in the main repo. If someone (or me) find the time, the main repo can be pulled for example everyday, thus punctually triggering the CIs.
There are actually 2 CIs. If we remove Travis and add Drone and Cirrus, we go to 3.
BTW feel free to create a feature request to add ARM support to Cirrus. It should be pretty doable in the near future.
Most helpful comment
BTW feel free to create a feature request to add ARM support to Cirrus. It should be pretty doable in the near future.