(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/
--
EN Wikipedia user page:
https://en.wikipedia.org/wiki/User:Brian.gerstle
IRC: bgerstle