Alternatives to travis-ci

Mathias LANG geod24 at gmail.com
Thu Dec 10 11:42:41 UTC 2020


As many of you might be aware already, travis-ci is killing their 
open-source plans.
They haven't sunset it yet,, but they introduced a set of 
restrictions that makes them completely uncompetitive and 
impractical to use compared to other services on the market.

It started with an announcement 
(https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing) 
after they got bought, and pretty quickly people started to 
realize it was much less work to migrate to another service than 
to send an email every other days.

It looks like they don't even provide extra credits anymore: 
https://news.ycombinator.com/item?id=25338983

So if you are maintaining an open-source library, you should 
seriously consider switching away from it. Personally, I favor 
Github Actions, as it's multi-platform (Linux/Mac/Windows), free 
for open source, and has good community-maintained support for D 
(https://github.com/dlang-community/setup-dlang). For Linux only, 
CircleCI seems like a decent alternative.

If you're on buildkite, be aware that we might be using your 
travis-ci script to run your tests (for example: 
https://github.com/dlang/ci/blob/e26bf0cca636394a90ea56652cae445609032d14/buildkite/build_project.sh#L163-L164).

If you're thinking about using Github Actions, it's as simple as 
using `- uses: dlang-community/setup-dlang at v1`. That will gives 
you `dmd-latest` to get started. If you want a more advanced 
usage, DMD's workflow file contains a lot of comment which might 
help you with some patterns, for example how to add an extra row 
to a matrix (spoiler: you can't, you can only remove rows): 
https://github.com/dlang/dmd/blob/master/.github/workflows/runnable_cxx.yml

If you plan of using CircleCI, I can recommend to look at our 
configuration: 
https://github.com/bpfkorea/agora/blob/ea9f26c3d09527f79c16365633923b472393571e/.circleci/config.yml

As you can see, the only tricky part is to make sure you get the 
merge commit generated by Github, and not the HEAD of the PR.

Happy hacking!


More information about the Digitalmars-d mailing list