Continuous Integration and Self-Hosted Git Servers/Solutions

I said that I'd post a post mortem on using GitLab, GitHub, and BitBucket Server (Previously Stash). So here it is.

The Good (Git Servers)

I'm going to break this down into three areas, one for each service/software.

GitLab

I started off using GitLab as an experiment to venture into self hosting my own Git repo's for some of my more sensitive game development projects (NDA's and private source code). It was quite impressively done, very smooth UI, very clean and quite a nice local mimic of GitHub's hosted variant. I personally loved how simple it was to add users and set permissions. It worked nicely, but here's the kicker. The free edition (CE, or community edition) is severely limited in features, and the paid version is not welcoming to small teams that have no budget for a $390 USD/year just for a single user. They block features that I personally would have used in a daily basis (Jenkins Integration).

  • Pricing: 2/10
  • UI: 8/10
  • Usability: 6/10
  • Integrations: 2/10

TL;DR GitLab is nice to work with, but the layout is quite hard to find smaller things in. Pricing is an absolute nightmare. UI is absolutely beautiful.

GitHub Enterprise

I tried this out for a very short time, as I quickly found that it's clearly not meant for the smaller teams, that is what GitHub.com is for.
The hardware requirements, along with the intended team size was far too much for me and I simply didn't have a need to go much farther. Pricing wise, it's much better for the feature set that you get compared to GitLab, but $2500 USD/yr for a min of 25 users is clearly not in my price range.

  • Pricing: 4/10
  • UI: 10/10
  • Usability: 8/10 (For intended use, 1/10 for my use)
  • Integrations: 10/10
BitBucket Server

This is my current daily driver, I love it to bits, but there are a few things that I don't entirely love, but they are resolved by the thousands of addons in the marketplace.

Atlassian does a phenomenal job of catering to smaller teams, a $10 USD/yr for 10 users is unbeatable value. The UI is very clean and minimalistic, something that a design student would certainly drool over.
They have very modest hardware requirements, something that's a must as I'll be virtualizing it on my ESXi Server. It has a great management UI, with everything on a long list that clearly shows what each page will let you manage.
Permissions is wonderful, I can create users to have very tight security for NDA'd projects, or I can leave it wide open for my family to see (Such as an automation tool for our house). Admittedly, all of the previous systems could have done that, but this for sure has the best set up way that I have seen. Even my baby boomer parents could navigate it easily.

  • Pricing: 10/10
  • UI: 9/10
  • Usability: 10/10
  • Integrations: 8/10

The Bad (Integrations)

There's a reason I didn't touch on this category much when I wrote the above summaries. I wanted a dedicated area for me to explain what I liked and disliked about the features.

This, admittedly will be short.

GitLab

Only integrates well with their own CI System, GitLab CI. Not something I'm a fan of. Getting Jenkins to work with it was a nightmare. The do support other things, but again, only in the Enterprise Edition. Comparison between versions
Personally, this is a bit like a pay to win game. Not enjoyable really.

GitHub

What can I say? They integrate with literally everything.

BitBucket Server

Now... This is the interesting part. They come close to GitHub in the integration support, but they do exceed in one section. Plugins. They have plugins to add even more support and features for whatever you need. The massive marketplace is full of amazing members of the community who write addons to extend and make Atlassian's products even better. The CI side integrates best with their own Bamboo Server, but I can't complain, it works flawlessly and is really nice to work on and with.

The Ugly (Continuous Integration)

Separate area, as this is a big part of what I look for in products. I love automation and the like

GitLab CI

It's interesting, and quite fun to look into. Works off of a similar mechanism as Travis CI. I personally think that this is better suited for web apps and software that is not gigantic Werewolf Island's source repo is well over 5GB - Not clean or fun to work with in this environment

It's cool, but not what I need in a CI server

GitHub

Doesn't really have a dedicated CI, as it works with literally all of them.

Atlassian Bamboo

I love this. So. Much. For some reason, I can't get it to run itself as a service, so every VM reboot, it starts itself with a bash script.

It's primarily built to run things like maven and ant, but can be extended with plugins just like BitBucket.

The design and setup of the main screen is amazing, It's perfect.
Admittedly, I haven't used it to it's full potential, but I certainly plan to for the great structure and extendability.

I currently plan to set up my FRC Team with some sort of training on using a CI system We're currently just using Travis to show whether or not something built properly (Huge thanks to the OpenRIO team)

Overall. Atlassian takes the cake for small teams and home users. It's just perfect for smaller teams, admittedly, once you go above 10 people, GitLab becomes a lot more attractive for the pricing structure.