(Tried sending this last weekend w/ an image attachment, which wikitech-l apparently didn't like. Trying again)
Scott's RFC about Travis got me thinking about GitLab again. To satisfy my curiosity, I conducted a little experiment this weekend: I imported the Wikipedia iOS GitHub repo into GitLab [0], configured it to use GitLab CI [1], and added my own laptop as a runner. I didn't do this with any specific outcome in mind, but wanted to share the results as food for thought.
While just a proof of concept, it took maybe an hour to setup and, perhaps most notably, is powered entirely by FLOSS (aside from some components specific to iOS development). I've added my thoughts about approach below, but take with a grain of salt as my experience was quite brief:
*Pros*
- FLOSS - Versatile - This setup uses a shell runner on an OSX machine, but other setups could use shared runners, dedicated runners, runners on Linux inside Docker containers, etc. - Decent-looking number of contributors (though clearly one person is doing the lion's share on GitLab) [2] - Easy to setup
*Cons*
- Small number of pre-made runners (e.g. compared to Travis) - Especially true for OS X, which appears to have no shared runners. Therefore, we'd have to provide our own (like I did with my own laptop). This could be facilitated via configuration management systems (e.g. Boxen or Ansible), but still not as "hassle free" as Travis (which provides OS X VMs as part of the service).
*Unknowns*
- How to hook up runners that reside in our secure networks (e.g. the iOS Mac Mini) - ToU / ToS
Otherwise, my overall impression of GitLab was very positive. It seems to have all the same features of GitHub and then some*:* e.g. protected branches and requiring approval from specific individuals for merge requests (similar to our +1/+2 system). Also, the UI is very modern and I found it quite enjoyable to use.
Hope you found this interesting and had some fun experiments of your own this weekend :-)
Brian
0: https://gitlab.com/wikimedia/wikipedia-ios 1: https://gitlab.com/wikimedia/wikipedia-ios/merge_requests/1 2: http://contributors.gitlab.com/