ci: harden community release baseline

This commit is contained in:
github-ops
2026-05-14 16:49:25 +00:00
parent 23962f98e3
commit fd11d9ceca
14 changed files with 139 additions and 304 deletions
+22 -45
View File
@@ -2,21 +2,20 @@
## 1. Назначение
Этот документ описывает именно тот кусок staging smoke, который нельзя честно закрыть одними `curl` и unauthenticated route checks.
Этот документ описывает тот кусок Community staging smoke, который нельзя честно закрыть одними `curl` и unauthenticated route checks.
Он покрывает:
- login/logout;
- UI shell после входа;
- `Secrets -> Auth Profiles -> Wizard -> Test run`;
- protocol smoke через UI и MCP;
- streaming pages после реальных вызовов.
- `REST` smoke через UI и MCP.
Использовать вместе с:
- [deploy-and-staging-smoke.md](/home/a.tolmachev/code/rust/mcpaas/docs/deploy-and-staging-smoke.md)
- [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md)
- [manual-regression-checklist.md](/home/a.tolmachev/code/rust/mcpaas/docs/manual-regression-checklist.md)
- [deploy-and-staging-smoke.md](deploy-and-staging-smoke.md)
- [staging-regression-notes.md](staging-regression-notes.md)
- [manual-regression-checklist.md](manual-regression-checklist.md)
## 2. Что нужно заранее
@@ -27,7 +26,7 @@
- `CRANK_STAGING_ADMIN_EMAIL=... CRANK_STAGING_ADMIN_PASSWORD=... just authenticated-staging-smoke https://<domain>`
- известны bootstrap admin credentials;
- на стенде есть demo data или подготовленный disposable workspace;
- браузер открыт с devtools, чтобы фиксировать network/console findings.
- браузер открыт с devtools, чтобы фиксировать network и console findings.
## 3. Канонический проход
@@ -39,9 +38,7 @@ export CRANK_STAGING_ADMIN_PASSWORD=secret
just authenticated-staging-smoke https://<domain>
```
После завершения прохода готовый блок для
[staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md)
можно сгенерировать так:
После завершения прохода готовый блок для [staging-regression-notes.md](staging-regression-notes.md) можно сгенерировать так:
```bash
just staging-note-block <domain> <deploy-sha> "codex + operator"
@@ -55,7 +52,6 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- valid login -> redirect на `/`;
- нет redirect loop;
- password-only note видна;
- planned actions на login не выглядят рабочими.
3. После входа проверить:
- current workspace в navbar;
- user identity;
@@ -80,7 +76,7 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- `status: passed | partial | failed`
- есть ли console errors;
- есть ли failing XHR/fetch;
- есть ли failing XHR или fetch;
- есть ли broken layout.
### 3.3. Secrets and auth profiles
@@ -111,19 +107,17 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- upstream сохраняется;
- test run отрабатывает с `auth_profile_ref`.
### 3.5. Protocol smoke
### 3.5. REST protocol smoke
Использовать:
- [public-smoke-targets.md](/home/a.tolmachev/code/rust/mcpaas/docs/public-smoke-targets.md)
- [public-smoke-targets.md](public-smoke-targets.md)
Обязательные кейсы:
Обязательный кейс:
- `REST`
- `GraphQL`
- `gRPC`
Для каждого:
Порядок:
1. создать или открыть operation;
2. выполнить `Test run`;
@@ -133,21 +127,9 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- `tools/list`
- `tools/call`
### 3.6. Streaming smoke
Проверить:
- `window` tool;
- `session` tool;
- `async_job` tool;
Если WebSocket/SOAP upstream на стенде отсутствуют:
- явно записать `not exercised`, а не оставлять пустым.
## 4. Что нужно занести в staging notes
По итогам authenticated pass в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md) обязательно добавить:
По итогам authenticated pass в [staging-regression-notes.md](staging-regression-notes.md) обязательно добавить:
- deploy commit;
- кто проходил smoke;
@@ -160,11 +142,7 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- secrets/auth profiles;
- wizard;
- REST;
- GraphQL;
- gRPC;
- streaming;
- WebSocket;
- SOAP.
- MCP smoke.
## 5. Готовый блок для вставки
@@ -190,7 +168,7 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- secrets
- logs
- usage
- streaming
- rest smoke
- mcp smoke
### Passed
@@ -199,11 +177,7 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- shell pages open after auth
- secrets/auth profile flow status: `<passed|partial|failed>`
- REST smoke: `<passed|partial|failed>`
- GraphQL smoke: `<passed|partial|failed>`
- gRPC smoke: `<passed|partial|failed>`
- streaming pages status: `<passed|partial|failed>`
- WebSocket: `<not exercised|passed|failed>`
- SOAP: `<not exercised|passed|failed>`
- MCP smoke: `<passed|partial|failed>`
### Findings
@@ -218,8 +192,11 @@ just staging-note-block <domain> <deploy-sha> "codex + operator"
- ...
```
## 6. Практический статус
## 6. Почему automated smoke недостаточно
На текущий момент этот документ подготовлен как operational template.
Скрипт [scripts/authenticated-staging-smoke.sh](../scripts/authenticated-staging-smoke.sh) полезен как быстрый sanity check, но он:
Он не заменяет реальный authenticated browser pass и не должен отмечаться как `passed`, пока результаты не занесены в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md).
- проверяет только минимальный browser flow;
- не создает реальный disposable operation;
- не заменяет ручной `REST -> publish -> MCP call` проход;
- не должен отмечаться как `passed`, пока результаты не занесены в [staging-regression-notes.md](staging-regression-notes.md).