2.2 KiB
2.2 KiB
Build tooling
build.sh — production build gate для traffic_core.
Что делает
Скрипт:
- Проверяет OS и архитектуру (Debian/Ubuntu, amd64/x86_64).
- Проверяет наличие инструментов:
cargo,rustc,gcc,pkg-config,file,ldd. - Проверяет минимальную версию Rust (
rustc >= 1.85.0). - Запускает quality gate:
cargo fmt --check(если не указан--skip-fmt),cargo clippy --locked --all-targets -- -D warnings,cargo test --locked --release,cargo build --locked --release.
- Проверяет собранный бинарь:
file,ldd,--help,sha256sum.
Что НЕ делает
- Не устанавливает Rust/toolchain автоматически.
- Не устанавливает системные зависимости через apt.
- Не создаёт production-конфиг автоматически.
Использование
Из корня репозитория:
./tools/build.sh
Опции:
--skip-fmt— пропустить шагcargo fmt --check.--install— после успешной сборки установить бинарь и systemd unit.
Режим --install
--install:
- Копирует бинарь в
/usr/local/bin/awg2-harness. - Проверяет, что
/etc/awg2-harness/config.tomlуже существует. - Копирует
awg2-harness.service. - Выполняет
systemd-analyze verify(если доступно). - Выполняет
systemctl daemon-reload.
Важно:
- Если скрипт запущен от root, команды установки выполняются напрямую.
- Если не от root — используется
sudo(и проверяется его наличие). - Скрипт не выполняет
systemctl enable --nowавтоматически.
Это intentional: включение сервиса и запуск остаются осознанным эксплуатационным шагом.