Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smoke tests for all platforms #7587

Closed
straight-shoota opened this issue Mar 25, 2019 · 2 comments · Fixed by #10848
Closed

Smoke tests for all platforms #7587

straight-shoota opened this issue Mar 25, 2019 · 2 comments · Fixed by #10848

Comments

@straight-shoota
Copy link
Member

straight-shoota commented Mar 25, 2019

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

@j8r
Copy link
Contributor

j8r commented Mar 25, 2019

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.

@fkorotkov
Copy link

BTW feel free to create a feature request to add ARM support to Cirrus. It should be pretty doable in the near future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants