|
|
|
Ask HN: What CI/CD server/service do you use?
|
|
22 points
by jstoja
3431 days ago
|
|
I heard so many people, read so many blog-posts on Jenkins, it's integration with many tools with it's plugin architecture, but also about TravisCI and how much it helped the OS community to build quality software for free, but I'm curious about other solutions and how well they work. What are you using? What criterias did drive this choice? Would you do it differently? |
|
GitLab's CI has a pipeline design, so (like Jenkins) you can have some jobs wait for other jobs to complete and use their build artifacts (e.g. have a single build job that downloads deps and compiles everything so later jobs don't need duplicate that work), and you can have jobs only be triggered manually instead of on every push.
It's not perfect, though. For instance, unlike TravisCI, you don't have a build matrix, but you can use YAML tricks to define template jobs (see GitLab's own CI file [0] and a resulting pipeline [1]). If you use GitLab.com, you should be aware that they have downtime a few times each month, both planned and unplanned. For their planned downtime, it is often during the work day in the US timezones, and usually lasts between 10-30 minutes (though it has been longer before). GitLab.com is also used as a "testing in production" environment for their monthly releases, so you will occasionally run into bugs (usually nothing showstopping though; mostly minor annoyances).
I think that what you choose greatly depends on what you need. GitLab CI is a little opinionated, but it is still pretty flexible and usable for a large number of work cases. If you need a ton of customizability, Jenkins could be a better option (with plugins). GitLab CI is a lot easier to setup, however.
GitLab CI also has CD features that you can look into (I don't use them myself). They are also constantly (i.e. every 22nd of the month) releasing new versions, and most of their features are open source.
[0]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab-...
[1]: https://gitlab.com/gitlab-org/gitlab-ce/pipelines/6014043