When comparing GitLab CI vs Semaphore CI, the Slant community recommends GitLab CI for most people. In the question“What are the best continuous integration tools?” GitLab CI is ranked 2nd while Semaphore CI is ranked 10th. The most important reason people chose GitLab CI is:
All build setup are stored in .gitlab-ci.yml file, which is versioned and stored in the project. Like Travis do.
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 Automatic Testing
Whenever a new push is made on GitHub or Bitbucket, Semaphore automatically runs tests on that branch.
Pro Free for open source
Semaphore supports open source and offers unlimited open source projects.
Pro Complete customer support
Semaphore offers all-around customer support for its commercial users.
Pro Free 100 builds per month for private projects
Semaphore offers 100 builds every month for private projects. This package is free for an unlimited time and offers: free & unlimited deploys, unlimited collaborators and running tests in parallel.
Pro GitHub integration
Projects can be imported from GitHub and Semaphore will automatically connect with that repository, once that's done, it will automatically trigger for every code commit.
Pro Docker support
Out of the box Docker support. Additionally, Semaphore can cache Docker images by using included docker-cache commands.
Pro Easy to configure
Semaphore is quite easy to configure and work with. It easily integrates with GitHub and a first build is only a few clicks away.
Semaphore is configured using .yaml configuration files which can be added from the web UI. There are a lot of tutorials out there that help developers configure Semaphore to their preference.
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 Proprietary with private project for $30/month
Semaphore is not free and nor is it open source. Pricing starts at $29 per month. However, there is a free option for private projects which have less than 100 builds per month and it's free for open source projects.