Software Engineering common practices change over time. What is an example (Linux-based) stack of a modern build & release pipeline for C++ with continuous integration and delivery.
As of 2022, with release of C++ 20 (with modules); what are some up-to-date open-source solutions, a combination that includes the following? (At least C++17)
- A package manager (e.g.
conan.io
) - Test framework (e.g.
googletest
) - Build tool (e.g.
make
,CMake
, etc; Are there newer tools?) - A CI/CD pipeline for release (e.g. circleci, Jenkins, github Actions, etc) with a scripting language(s):
bash
,groovy
. - Compiler (Should be suitable for multiple target platforms using multiple compilers for each release:
gcc++
,clang++
) and producing artifacts (documentations etc) - Various test types (unit, integration, mocking, maybe profiling or performance testing)
- Linter
- Other items I might have missed
I know there are many variations and tastes. But what is a mature combination that you know of and have worked well together and in a medium-sized or large sized company with agile teams and workflows.
Ideally, a good C++ github repo with workflows set up that represent an industry-standard combination of above items, would be ideal.