GitLab CI

Last updated: Nov 4, 2026


Rationale

GitLab CI is the system that orchestrates all the CI/CD workflows of Fluid Attacks. These workflows are the base of all the development cycle of Fluid Attacks. With it, Fluid Attacks can do these tasks:

Because its workflows are very automated, Fluid Attacks can deploy applications many times each day without a decrease in quality or security.

These are the primary reasons why Fluid Attacks selected GitLab CI and not other alternatives:

Alternatives

Fluid Attacks examined these alternatives, but it did not select them for these reasons:

  • Jenkins: It did not support pipelines as code when Fluid Attacks reviewed it.
  • TravisCI: It had to have licensing for private repositories when Fluid Attacks reviewed it.
  • CircleCI: It did not support GitLab, it was very expensive, and it did not have as many parameters.
  • Buildkite: Its review is pending.

Usage

Fluid Attacks uses GitLab CI for these tasks:

  • To run all its CI/CD jobs
  • To manage all its CI pipelines as code
  • To configure its AWS autoscaler as code
  • To implement a Continuous Delivery approach for its development cycle. Fluid Attacks automates all the process, including the deployments for development and production. But the GitLab bot must approve each merge request before Fluid Attacks can deploy changes to production. The review policy of the bot decides when a person must also approve.

Fluid Attacks does not use GitLab CI for very long schedules that continue for more than six hours. Examples are Analytics ETLs and Machine learning training. For these schedules, Fluid Attacks uses AWS Batch. This is because GitLab CI is not for jobs that continue for that many hours. Frequently, these jobs stop before they can end. The primary cause is the disconnection between the worker that runs the job and its GitLab CI Bastion.

On this page