The Crystal Programming Language Forum

Migrate CI in crystal-lang projects

Some of our crystal-lang repositories still use Travis CI which is just broken because the update to use the new OBS repositories is not getting merged. It seems like travis is rapidly declining anyways, so it’s really a good idea to move away.

We have been consolidating on Github Actions for crystal-lang/crystal and a couple more main repos (crystal-lang/shards, rystal-lang/crystal-book).

Most of the shard repositories and others are still using travis. They should be migrated to Github Actions.

There are also some of CircleCI configurations (at least in crystal-lang/distribution-scripts) which works fine but we could migrate them to Github Actions as well to standardize on a single setup. Definitely not a priority, though.


(Note to @core-team: I initially posted this thread in the Core Corner, but it was intended for Crystal Contrib, so please be aware that I transferred it here after publishing it.)

Do you need any help with this? Is it ok for devs to go ahead and start contributing? I’m definitely interested. Is there a place where you have these items logged as todo? (Trello, JIRA, GitHub Issues, etc)

Sure, help is definitely welcome. Thanks!
We should still wait for comments from other core members though, before starting a big effort.

We should probably coordinate and standardize the specific CI configuration (like which versions to test against) between all repositories. Not that every one should get the exact same settings (there are probably some specific differences), but to have a general plan on what we do.

We’re already using Github Actions on crystal-db shard (crystal-db/ci.yml at master · crystal-lang/crystal-db · GitHub) and probably just take that as basis for other shards.
I would suggest to add 1.0.0 to the version matrix explicitly. Currently, it’s identical to latest, but after the next minor releases we should probably still aim for compatibility with 1.0. It doesn’t need to be strictly enforced, but at least we should know about it and make an informed decision. Hence we should have it on CI.

(I created a PR against crystal-db to fix that there: Update Github Actions config by straight-shoota · Pull Request #152 · crystal-lang/crystal-db · GitHub)

We also might want to revisit starter-workflows/crystal.yml at e254b12b67be2492ce6e921410fc39944010bed1 · actions/starter-workflows · GitHub