GitLab Common CI/CD Tools#

GitLab Common CI/CD Tools (GitLab 3CT for short) provides a GitLab CI/CD solution that helps to control the quality of mainly C++ and Python codebases and their surrounding infrastructure.

While the driving force of this module is to reduce duplication of CI/CD configurations and scripts across projects developed by me (Zinchenko Serhii), it is intended to be useful for any software that wants to utilize GitLab CI/CD to some degree.

This module also may serve as a useful reference for setting up a GitLab CI/CD using good practices.

Usage#

By design this project is intended to be used as a CI/CD template in most of the cases. However due to some limitations it might be forked to bring some changes and then to be used as your own CI/CD template. Both ways will be covered in-deep down on this page.

CI/CD templates#

This project provides a bunch of useful GitLab CI/CD pipelines for different programming languages and frameworks. Below is a nice list of all available pipelines:

You can start using those pipelines by including one of them as shown below:

include:
  - project: 'bproto/cicd'
    ref: main
    file:
      - '/.gitlab/ci/external/lite.yml'

You also need to define below CI/CD variables in your group or project CI/CD settings.

Type

Key

Value

Protected

Masked

Environments

Variable

BPROTO_CI_IMAGES_REGISTRY

registry.gitlab.com/bproto/artifacts

no

no

All

Now you are ready to go!

Note

To have a better understanding of pipelines implementation, you might also consider looking at an overview of different aspects of pipelines, such as a list of implemented stages and how the workflow was designed.

Forks#

If you think, you need to fork this project and adjust it to your personal needs, please consider taking a look at this documentation page.

License#

All code is licensed under the Apache 2.0 license.