51 lines
1.7 KiB
Text
51 lines
1.7 KiB
Text
# =============================================================================
|
|
# ci.just — CI/CD пайплайны
|
|
# Выполняется в CI-окружении (GitHub Actions, GitLab CI, Jenkins)
|
|
#
|
|
# Stage 1: только reproducible шаги без железа:
|
|
# - сборка
|
|
# - host unit-тесты
|
|
# lint/release будут включаться по мере стабилизации пайплайна.
|
|
# =============================================================================
|
|
|
|
BUILD_DIR := env('BUILD_DIR', justfile_directory() / 'build')
|
|
|
|
set working-directory := '..'
|
|
|
|
[doc('Минимальный CI pipeline: сборка + host-тесты')]
|
|
[group('ci')]
|
|
pipeline: build test
|
|
@echo " ✅ Minimal CI pipeline complete"
|
|
|
|
[doc('Собрать все проекты в Release')]
|
|
[group('ci')]
|
|
build:
|
|
just build::build-all-release
|
|
|
|
[doc('Запустить host unit-тесты (Release)')]
|
|
[group('ci')]
|
|
test:
|
|
just build::test-host-release
|
|
|
|
[doc('Запустить линтеры и статический анализ')]
|
|
[group('ci')]
|
|
lint:
|
|
@echo "TODO: enable just build::lint / just build::check after local stabilization"
|
|
|
|
[doc('Собрать HAB Release-артефакты для деплоя')]
|
|
[group('ci')]
|
|
release: build
|
|
just build::hab-all-release
|
|
@echo " ✅ Release artifacts ready in {{ BUILD_DIR }}/Release/"
|
|
|
|
[group('ci')]
|
|
[private]
|
|
_coverage:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
if command -v gcovr &>/dev/null; then
|
|
echo " 📊 Generating coverage report..."
|
|
gcovr --xml -o {{ BUILD_DIR }}/coverage.xml
|
|
else
|
|
echo " ⚠️ gcovr not found, skipping coverage"
|
|
fi
|