You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: scripts/test/README.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,8 +43,8 @@ live-mcp-http.py
43
43
44
44
| Файл | Роль | Назначение | Зона ответственности |
45
45
| --- | --- | --- | --- |
46
-
|`ci-rust.sh`| CI entrypoint | Диспетчер CI-контуров по `V8_RUNNER_CI_SCOPE`| Выбрать нужный scope и передать управление в `cargo test` или `ci-happy-path.sh`|
47
-
|`ci-happy-path.sh`| CI helper | Canonical happy-path для trusted CI | Собрать бинарь, выполнить `cargo check/test`, затем запустить обязательный packaging/live contour |
46
+
|`ci-rust.sh`| CI entrypoint | Диспетчер CI-контуров по `V8_RUNNER_CI_SCOPE`| Выбрать нужный scope и передать управление в `cargo test`, Windows contract `cargo check`, или `ci-happy-path.sh`|
47
+
|`ci-happy-path.sh`| CI helper | Canonical happy-path для trusted CI | Собрать бинарь, выполнить `cargo check`, опционально `cargo test`, затем запустить обязательный packaging/live contour |
48
48
|`ci-platform-install.sh`| CI helper | Установить 1С platform bundle на GitHub-hosted runner | Скачать secret-backed bundle, проверить checksum, распаковать и отдать `tools.platform.path`/`ibsrv` paths |
49
49
|`ci-designer-config.sh`| CI helper | Материализовать dedicated live config для mandatory CI smoke | Подготовить `format=DESIGNER`, `builder=DESIGNER`, file `infobase.connection`, required source-set'ы и `tools.platform.path`|
50
50
|`ci-ibsrv.sh`| CI helper | Поднять/остановить standalone `ibsrv` sidecar для trusted happy-path | Запустить `ibsrv` с `--data` и `--db-path`, синхронизированным с `V8TR_DESIGNER_REAL_CONFIG`, и корректно завершить процесс |
@@ -142,6 +142,7 @@ live-mcp-http.py
142
142
|`V8TR_IBSRV_PATH`|`ci-platform-install.sh`, `ci-ibsrv.sh`| Путь до standalone `ibsrv`, извлечённый из platform bundle |
|`V8TR_DESIGNER_ALLOW_MISSING_CONFIG`|`live-cli-fixture.sh`, `.github/workflows/ci.yml`| Gating hook для soft-skip mandatory live contour на fork/untrusted контексте и на trusted CI без OS-specific platform bundle secrets |
145
+
|`V8TR_CI_SKIP_DUPLICATE_RUST_TESTS`|`ci-happy-path.sh`, `.github/workflows/ci.yml`| Явный CI hook для пропуска дублирующего `cargo test` в happy-path, когда contract job уже владеет Rust test coverage |
145
146
|`V8TR_REAL_CONFIG`|`live-mcp-http.py`| Реальный config для MCP HTTP smoke |
`.github/workflows/ci.yml` запускает install/config/ibsrv/upload helpers only when `live_available=true`, то есть когда для текущей matrix OS настроены `V8TR_PLATFORM_BUNDLE_URL_*` и `V8TR_PLATFORM_BUNDLE_SHA256_*`. Без этой пары secrets happy-path остаётся blocking для Rust/non-live checks и soft-skips real 1C smoke.
164
+
`.github/workflows/ci.yml` запускает install/config/ibsrv/upload helpers only when `live_available=true`, то есть когда для текущей matrix OS настроены `V8TR_PLATFORM_BUNDLE_URL_*` и `V8TR_PLATFORM_BUNDLE_SHA256_*`. Без этой пары secrets happy-path остаётся blocking для Rust build/check, получает `V8TR_CI_SKIP_DUPLICATE_RUST_TESTS=1`, полагается на contract job для Rust test coverage и soft-skips real 1C smoke.
165
+
166
+
Windows contract scope currently runs `cargo check --locked --all-targets`; full `cargo test --locked` remains Linux-owned until the Windows-specific test suite is hardened. Exit criterion: switch Windows contract back to `cargo test --locked` after fixing the tracked path separator, fake-binary, ACL, and process-lifecycle failures in `spec/acceptance/real-environment-validation.md`.
Copy file name to clipboardExpand all lines: spec/acceptance/real-environment-validation.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,9 +45,10 @@ bash scripts/test/ci-rust.sh
45
45
46
46
Поведение:
47
47
48
-
-`V8_RUNNER_CI_SCOPE=contract` или `full` запускает `cargo test --locked`
48
+
-`V8_RUNNER_CI_SCOPE=contract` запускает `cargo test --locked` на Linux и `cargo check --locked --all-targets` на Windows, пока Windows test suite не hardened
49
+
-`V8_RUNNER_CI_SCOPE=full` всегда запускает `cargo test --locked`
49
50
-`V8_RUNNER_CI_SCOPE=runtime-locks` запускает только lock-focused regression subset
50
-
-`V8_RUNNER_CI_SCOPE=happy-path` запускает Rust/non-live цепочку `build -> cargo check -> cargo test`, затем `live-cli-fixture`; real 1C `package -> deploy-ready artifacts` выполняются только когда workflow подготовил `V8TR_DESIGNER_REAL_CONFIG`
51
+
-`V8_RUNNER_CI_SCOPE=happy-path` запускает Rust/non-live цепочку `build -> cargo check`, затем `live-cli-fixture`; `cargo test` пропускается только при явном `V8TR_CI_SKIP_DUPLICATE_RUST_TESTS=1`, когда этот же workflow полагается на contract job для full Linux test coverage
3.`cargo test --locked`, unless `V8TR_CI_SKIP_DUPLICATE_RUST_TESTS=1`
67
68
4.`bash scripts/test/live-cli-fixture.sh`
68
69
69
70
`scripts/test/live-cli-fixture.sh` в mandatory профиле обязан выполнить одинаковые стадии для обеих ОС, когда `V8TR_DESIGNER_REAL_CONFIG` материализован:
@@ -110,7 +111,7 @@ Mandatory happy-path должен быть blocking live-smoke только дл
110
111
- workflow может разрешить soft-skip только через `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1`
111
112
- без этого hook `scripts/test/live-cli-fixture.sh` падает, если `V8TR_DESIGNER_REAL_CONFIG` не задан
112
113
- trusted path with configured OS-specific bundle secrets устанавливает 1С, материализует dedicated `format: DESIGNER` + `builder: DESIGNER` config, запускает `ibsrv` sidecar на том же file-infobase path и только потом вызывает canonical entrypoint `V8_RUNNER_CI_SCOPE=happy-path bash scripts/test/ci-rust.sh`
113
-
- trusted path without those secrets emits a GitHub Actions notice with `live_available=false`, sets `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1`, and keeps Rust/non-live happy-path checks blocking while the live smoke is skipped
114
+
- trusted path without those secrets emits a GitHub Actions notice with `live_available=false`, sets `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1` and `V8TR_CI_SKIP_DUPLICATE_RUST_TESTS=1`, and keeps Rust build/check plus Linux contract tests blocking while the live smoke is skipped
114
115
- fork PR и Dependabot не получают install/bootstrap/upload path: workflow передает только `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1`, а upload deploy-ready артефактов остаётся trusted-only
115
116
116
117
## Контракт `live-cli-fixture`
@@ -207,15 +208,16 @@ Windows runner contract for this helper layer is explicit:
207
208
208
209
| Контур | Linux | Windows | Blocking | Build | Syntax/check | Test | Package | Deploy-ready artifacts |
|`ci-rust contract`| yes | yes | yes | Rust | Rust |Rust| no | no |
211
-
|`ci-rust happy-path`| yes | yes | yes for Rust/non-live checks; live smoke is blocking when OS bundle secrets exist | Rust + real 1C when available | real when available | Rust by default; real 1C opt-in | real when available | real when available |
211
+
|`ci-rust contract`| yes | yes | yes | Rust | Rust |Linux full tests; Windows compile/check smoke| no | no |
212
+
|`ci-rust happy-path`| yes | yes | yes for Rust/non-live checks; live smoke is blocking when OS bundle secrets exist | Rust + real 1C when available | real when available | Rust test repeats unless `V8TR_CI_SKIP_DUPLICATE_RUST_TESTS=1`; real 1C opt-in | real when available | real when available |
212
213
|`live-mcp-http`| optional | optional | no | real via MCP | real via MCP | real via MCP | n/a | n/a |
213
214
|`live-cli-ibcmd`| optional | optional | no | real (`IBCMD`) | n/a | n/a | diagnostic dump/export only | n/a |
214
215
|`live-cli-designer`| optional | optional | no | real (`DESIGNER`) | real | real opt-in | real | real |
215
216
216
217
## Ограничения и TODO hooks
217
218
218
219
- Workflow `.github/workflows/ci.yml` уже зафиксировал contract/gating/upload wiring, но сам не умеет скачивать vendor installer публично: trusted live path ожидает готовый platform bundle по секретному URL и обязательному SHA256. Если OS-specific URL/SHA256 secrets отсутствуют, workflow явно сообщает degraded coverage через notice и soft-skips live smoke; восстановление blocking live coverage требует добавить соответствующую пару secrets.
220
+
- Windows CI currently provides compile/check smoke, not full `cargo test`, until Windows-specific path, fake-binary, ACL, and process-lifecycle tests are hardened. Owner: CI contract docs in this file. Exit criterion: switch Windows contract back to `cargo test --locked` after those failure groups pass on `windows-latest`.
219
221
-`ibsrv` в workflow запускается как sidecar на том же `--db-path`, который зашит в dedicated file-based Designer config; сам CLI harness по текущему контракту остаётся file-connection oriented и не переключается на server connection.
220
222
-`live-cli-fixture` по умолчанию не запускает 1С test-stage; `va`, `yaxunit-all` и `module` остаются opt-in режимами для стендов, где установлен и проверен соответствующий headless runner.
221
223
-`live-mcp-http` и `live-cli-ibcmd` остаются отдельными non-blocking контурами.
0 commit comments