GitLab CI

Last updated: Mar 9, 2026


Rationale

GitLab CI is the system that orchestrates all the CI/CD workflows within our company. Such workflows are the backbone of our entire development cycle. By using it, we become capable of:

By having highly automated workflows, we become capable of deploying applications many times a day without sacrificing quality or security.

The main reasons why we chose GitLab CI over other alternatives are:

Alternatives

The following alternatives were considered but not chosen for the following reasons:

  • Jenkins: It did not support pipelines as code at the time it was reviewed.
  • TravisCI: It required licensing for private repositories at the time it was reviewed.
  • CircleCI: It did not support GitLab, was very expensive, and was not as parameterizable.
  • Buildkite: It is still pending for review.

Usage

We use GitLab CI for:

We do not use GitLab CI for highly time-consuming schedules that take longer than six hours, like Analytics ETLs, Machine learning training, among others. We use AWS Batch instead. The reason for this is that the GitLab CI is not meant to run jobs that take that many hours, often resulting in jobs being terminated before they can finish, mainly due to disconnections between the worker running the job and its GitLab CI Bastion.

On this page