Common GitLab CI/CD tools
A collection of carefully crafted GitLab CI/CD pipelines and jobs for C++, Docker, Python and many more other programming languages, as well as some utility jobs for making my work on projects hosted on GitLab way easier.
Keys features:
- C++ pipeline which provides everything you might want:
- build and test CMake-based projects using Clang and GCC compilers on a variety of pre-defined configurations:
- CentOS 7,
- CentOS 8,
- Ubuntu 20.04;
- lint with the next sanitizers:
ASan
,LSan
,MSan
,UBSan
,TSan
and Valgrind; - lint with clang-format and clang-tidy;
- generate code coverage with the help of gcov and gcovr;
- build and test CMake-based projects using Clang and GCC compilers on a variety of pre-defined configurations:
- Conan pipeline for testing and uploading Conan packages to GitLab;
- Hugo and Sphinx pipelines for documentation generation and upload to GitLab Pages;
- and many more!
Released under Apache License 2.0.
Tags: GitLab
, GitLab CI/CD
, C++
, Clang-Format
, Clang-Tidy
, Docker
, Linters
.
Developer Guides
A collection of different guides for programming languages and tools which I’m using on a daily basis.
Those guides mostly include stuff listed below:
normative requirements, like code conventions and code styles, which I follow mainly in my hobby projects;
(I tend to follow those conventions and code styles on my job as well if customer doesn’t enforce their conventions or doesn’t have such)
helpful pages with tools setups and some common stuff from my daily work;
useful links to external articles or guides.
Released under Apache License 2.0.
Tags: C++
, CMake
, Docker
, RST
, Shell
.
Common CMake Project Options
A cmake
module that is used by the C++-based projects developed by me (Bytes Mess).
This module helps to control the quality and consistency of such projects’ build systems.
While the driving force of this module is to reduce duplication in CMake scripts across all my projects, it can be applied to any software that uses the CMake build system.
This module may also serve as a handy reference for setting up a modern CMake build system using good practices.
Links: conan recipe, docs, repo, issues.
Released under Apache License 2.0.
Tags: CMake
.
CppDoc
A cmake
module that makes it easier to generate HTML documentation with a help of doxygen and sphinx packages, as well as breathe and exhale sphinx
extensions.
Keys features:
support of C++ files annotated with Doxygen comments;
support of python stubs annotated with
docstring
s;support of separate RST documentation boosted with
sphinx
;(a better replacement of .dox files approach)
correct support of multiple Doxygen projects.
Links: conan recipe, docs, repo, issues.
Released under Apache License 2.0.
Tags: C++
, CMake
, Doxygen
, Sphinx
, Breathe
, Exhale
.