cicd

APACHE-2.0 License

Stars
5
Committers
3

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.

Table of contents (generated with markdown-toc)

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!

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.