You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
We currently only run CI on the tier 1 platforms
x86_64-darwin
,x86_64-linux-gnu
andi386-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:
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
The text was updated successfully, but these errors were encountered: