Scripts
staging-smoke.sh
Post-deploy smoke helper для staging/production-like окружений.
./scripts/staging-smoke.sh https://crank.example.com
authenticated-staging-smoke.sh
Browser-authenticated smoke helper.
Обязательные переменные:
CRANK_STAGING_ADMIN_EMAILCRANK_STAGING_ADMIN_PASSWORD
CRANK_STAGING_ADMIN_EMAIL=owner@example.com \
CRANK_STAGING_ADMIN_PASSWORD=secret \
./scripts/authenticated-staging-smoke.sh https://crank.example.com
authenticated-product-smoke.sh
Authenticated product smoke helper. Создает временную REST operation на
внутренний admin-api health endpoint, публикует агента, выпускает API-ключ и
проверяет MCP tools/list / tools/call. Внешние публичные API не используются.
Обязательные переменные:
CRANK_STAGING_ADMIN_EMAILCRANK_STAGING_ADMIN_PASSWORD
CRANK_STAGING_ADMIN_EMAIL=owner@example.com \
CRANK_STAGING_ADMIN_PASSWORD=secret \
./scripts/authenticated-product-smoke.sh https://crank.example.com
По умолчанию временные сущности удаляются после успешной проверки. Для отладки можно оставить их в workspace:
CRANK_PRODUCT_SMOKE_KEEP_ASSETS=1 ./scripts/authenticated-product-smoke.sh https://crank.example.com
staging-note-block.sh
Генерирует markdown-блок для docs/staging-regression-notes.md после реального
staging pass.
./scripts/staging-note-block.sh crank.example.com abc1234 "operator" partial
load-openbao-env.sh
Логинится в OpenBao через AppRole и выгружает deploy/runtime secrets в локальный shell env file.
Обязательные переменные:
BAO_ADDRBAO_ROLE_IDBAO_SECRET_IDOPENBAO_APP
Опционально:
OPENBAO_ENV_FILE, default.openbao-env
Скрипт читает KV v2 secrets из mount ci:
shared/registryshared/deploy-sshprojects/${OPENBAO_APP}/deployprojects/${OPENBAO_APP}/runtime
Также он создает workflow-compatible aliases:
REGISTRY_USERNAME -> DEPLOY_REGISTRY_USERREGISTRY_PASSWORD -> DEPLOY_REGISTRY_TOKEN
check-rust-code-health.sh
Проверяет базовые правила сопровождаемости Rust-кода:
- новые
.rsфайлы не больше 1000 строк; - существующие крупные файлы не должны расти сверх текущего baseline;
- крупные inline test modules запрещены вне legacy allowlist.
./scripts/check-rust-code-health.sh
check-rust-boundaries.sh
Проверяет направление зависимостей между Rust workspace crates:
- приложения из
apps/*могут зависеть от crates, но не от других приложений; - crates не должны зависеть от приложений;
crank-coreне зависит от runtime, registry и adapters;crank-registryне зависит от runtime и adapters;crank-runtimeне зависит от registry.
./scripts/check-rust-boundaries.sh
check-community-scope.sh
Проверяет, что в community-репозиторий не попали функции и тексты за пределами REST -> MCP сценария.
./scripts/check-community-scope.sh
Unit-тесты checker-а лежат в tests/unit:
python3 -m unittest discover -s tests/unit