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 (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.
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:
- Documentation
Hugo (.gitlab/ci/external/hugo.yml)
Sphinx (.gitlab/ci/external/sphinx.yml)
- Languages
CMake (.gitlab/ci/external/lite.yml)
Docker (.gitlab/ci/external/lite.yml)
Linux shell (.gitlab/ci/external/lite.yml)
Python (.gitlab/ci/external/lite.yml)
YAML (.gitlab/ci/external/lite.yml)
- Packages
Conan (.gitlab/ci/external/conan.yml)
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 |
|
no |
no |
All |
Now you are ready to go!
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.