When comparing GitLab CI vs RhodeCode, the Slant community recommends RhodeCode for most people. In the question“What are the best hosted version control services?” RhodeCode is ranked 6th while GitLab CI is ranked 7th. The most important reason people chose RhodeCode is:
It's open source and it can be installed on your own machine, which gives high security and isolated environment for the codes. Whole application installation is super easy and independent from the Linux distribution.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro File based configuration
All build setup are stored in .gitlab-ci.yml file, which is versioned and stored in the project. Like Travis do.
Pro Free and open source
All of GitLab CI's code is open source and under the MIT license.
Pro Parallel builds lessen test times
Tests are parallelized across multiple machines in order to reduce test times considerably.
Pro Docker intergration
Good integration with Docker.
Pro Highly scalable
The tests of GitLab CI run parallel to each other and are distributed on different machines. Developers can add as many machines as they want or need, making GitLab CI highly scalable to the development team's needs.
Pro Quick setup for projects hosted on GitLab
Since it uses the GitLab API for setting up hooks, the setup of GitLab CI for projects hosted on GitLab can be done in one click.
Pro Kubernetes integration
Easy to test and deploy on Kubernetes.
Pro High security
It's open source and it can be installed on your own machine, which gives high security and isolated environment for the codes. Whole application installation is super easy and independent from the Linux distribution.
Pro Supports 3 major version control systems
RhodeCode supports Mercurial, Git and Subversion in a unified way that allows you to do code-reviews and other stuff on each of them.
Pro Centralized user management
User management is centralized around administrators which can give granular permissions to individual users or user groups/. These permissions can be related to allowing contributions, editing, or simply giving read-only access to users.
Pro Powerful and flexible code review
Code reviews can be done via Pull Requests, or simply commit-by-commit. There are voting rules, random reviewers pools, and smart comment invalidation logic. Pull requests are also versioned so it's easy to review partial changes after the author has updated his code.
When you create a Pull-request you can add set of reviewers. They all have to vote and approve the PR. There's some flexibility on how the voting is accepted, it can be majority wins, or all-agree. Good practice is to add BOT accounts like jenkins, that also will vote on the review, based on for example tests run, and can forbid a merge because of a negative vote. In addition users can leave special type of comments that will also prevent merges, aka TODO notes. Once TODOs are resolved a Pull Request can be merged.
Pro Free and Open Source
RhodeCode CE (Community Edition ) is free and open source. Enterprise Edition (EE) adds premium support, corporate authentication. and tool integrations on top of the RhodeCode CE.
Pro Integrates fully with LDAP/AD and others
RhodeCode has auth plugins, now supported include: LDAP, LDAP with user groups, TOKEN, Container auth, PAM
Pro Online editing with preview
Files can be added, modified and deleted from the web interface, including adding directories, and uploading files.
Pro Best in class permission system
RhodeCode have the most advanced Permission system on the market, allowing things like permission inheritance, permission delegation. All comes in a format that doesn't get hard to manage at scale.
Pro Header authentication plugin allows auth delegation to 3rd party systems
The builtin header auth can delegate authentication to other existing systems for further validation chain.
Cons
Con Not lightweight
Not a lightweight solution, demanding and memory hungry.
Con Cost
Larger projects will need upgraded version
Con Security risks
Con Windows not supported
No Windows support, but it's possible to use a Bitnami stack.
Con Hard to maintain and upgrade
The documentation is not very clear and it's hard to troubleshoot if there is a failure.