127 lines
3.7 KiB
Markdown
127 lines
3.7 KiB
Markdown
# Scripts
|
||
|
||
## `staging-smoke.sh`
|
||
|
||
Post-deploy smoke helper для staging/production-like окружений.
|
||
|
||
```bash
|
||
./scripts/staging-smoke.sh https://crank.example.com
|
||
```
|
||
|
||
## `authenticated-staging-smoke.sh`
|
||
|
||
Browser-authenticated smoke helper.
|
||
|
||
Обязательные переменные:
|
||
|
||
- `CRANK_STAGING_ADMIN_EMAIL`
|
||
- `CRANK_STAGING_ADMIN_PASSWORD`
|
||
|
||
```bash
|
||
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_EMAIL`
|
||
- `CRANK_STAGING_ADMIN_PASSWORD`
|
||
|
||
```bash
|
||
CRANK_STAGING_ADMIN_EMAIL=owner@example.com \
|
||
CRANK_STAGING_ADMIN_PASSWORD=secret \
|
||
./scripts/authenticated-product-smoke.sh https://crank.example.com
|
||
```
|
||
|
||
По умолчанию временные сущности удаляются после успешной проверки. Для отладки
|
||
можно оставить их в workspace:
|
||
|
||
```bash
|
||
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.
|
||
|
||
```bash
|
||
./scripts/staging-note-block.sh crank.example.com abc1234 "operator" partial
|
||
```
|
||
|
||
## `load-openbao-env.sh`
|
||
|
||
Логинится в OpenBao через AppRole и выгружает deploy/runtime secrets в локальный
|
||
shell env file.
|
||
|
||
Обязательные переменные:
|
||
|
||
- `BAO_ADDR`
|
||
- `BAO_ROLE_ID`
|
||
- `BAO_SECRET_ID`
|
||
- `OPENBAO_APP`
|
||
|
||
Опционально:
|
||
|
||
- `OPENBAO_ENV_FILE`, default `.openbao-env`
|
||
|
||
Скрипт читает KV v2 secrets из mount `ci`:
|
||
|
||
- `shared/registry`
|
||
- `shared/deploy-ssh`
|
||
- `projects/${OPENBAO_APP}/deploy`
|
||
- `projects/${OPENBAO_APP}/runtime`
|
||
|
||
Также он создает workflow-compatible aliases:
|
||
|
||
- `REGISTRY_USERNAME -> DEPLOY_REGISTRY_USER`
|
||
- `REGISTRY_PASSWORD -> DEPLOY_REGISTRY_TOKEN`
|
||
|
||
## `check-rust-code-health.sh`
|
||
|
||
Проверяет базовые правила сопровождаемости Rust-кода:
|
||
|
||
- новые `.rs` файлы не больше 1000 строк;
|
||
- существующие крупные файлы не должны расти сверх текущего baseline;
|
||
- крупные inline test modules запрещены вне legacy allowlist.
|
||
|
||
```bash
|
||
./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.
|
||
|
||
```bash
|
||
./scripts/check-rust-boundaries.sh
|
||
```
|
||
|
||
## `check-community-scope.sh`
|
||
|
||
Проверяет, что в community-репозиторий не попали функции и тексты за пределами
|
||
REST -> MCP сценария.
|
||
|
||
```bash
|
||
./scripts/check-community-scope.sh
|
||
```
|
||
|
||
Unit-тесты checker-а лежат в `tests/unit`:
|
||
|
||
```bash
|
||
python3 -m unittest discover -s tests/unit
|
||
```
|