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 (Bytes Mess), 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.
Table of contents (generated with markdown-toc)
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.
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!
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.
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.
All code is licensed under the Apache 2.0 license.