Ответ
Я настраивал CI/CD пайплайны для проектов на C++ с использованием GitLab CI/CD и GitHub Actions. Основная цель — автоматизация сборки, тестирования и анализа кода для каждого коммита или пулл-реквеста.
Типичный стек для C++ проекта:
- Система сборки: CMake.
- Компиляторы: GCC, Clang (сборка под разные платформы и стандарты).
- Тестирование: Google Test (GTest) или Catch2.
- Статический анализ: Clang-Tidy, Cppcheck.
- Форматирование: Clang-Format.
- Артефакты: Загрузка собранных бинарников или создание Docker-образов.
Пример конфигурации .gitlab-ci.yml:
stages:
- build
- test
- analyze
variables:
GIT_SUBMODULE_STRATEGY: recursive
.build-template: &build-template
stage: build
script:
- mkdir -p build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" ..
- cmake --build . --parallel
build-gcc:
<<: *build-template
image: gcc:12
build-clang:
<<: *build-template
image: clang:15
unit-tests:
stage: test
image: gcc:12
script:
- mkdir -p build && cd build
- cmake -DBUILD_TESTS=ON ..
- cmake --build . --parallel
- ./bin/runUnitTests
clang-tidy:
stage: analyze
image: silkeh/clang:15
script:
- mkdir -p build && cd build
- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
- run-clang-tidy -checks='*' -warnings-as-errors='*'
На проекте это позволило быстро выявлять ошибки компиляции, регрессии в тестах и проблемы со стилем кода, значительно повысив надежность процесса разработки.
Видео-ответы
▶
СОБЕСЕДОВНИЕ SENIOR AQA PYTHON | ВИЛКА 350к
▶
Техническое собеседование на позицию Senior Java Developer
▶
Как нужно проходить собеседование по Python, чтобы получить оффер!
▶
Собеседование на позицию Middle Unity Developer, C#. | Мок интервью
▶
СОБЕСЕДОВАНИЕ MIDDLE REACT FRONTEND || ЗП ОТ 230К
▶
Собеседование на Middle PHP разработчика
▶
#12 Фронтенд-разработчик нейросети на собеседовании Frontend Middle
▶
Тестовое собеседование Java разработчика #30 - Максим Татаринцев
▶
После службы прямиком в Девопс/ Интервью на позицию DevOps Engineer / Мок собес / 7
▶
Открытое собеседование на тестировщика-автоматизатора
▶
Мок собеседование Java QA Automation с разбором ответов и материалами
▶
Тестовое собеседование Java разработчика #25 - Алексей Пригода
▶
Тестовое собеседование Java разработчика #5 - Владимир Голубничий