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
|`V8TR_DESIGNER_ALLOW_MISSING_CONFIG`|`live-cli-fixture.sh`, `.github/workflows/ci.yml`|Trusted/fork gating hook для soft-skip mandatory live contour на untrusted контексте |
144
+
|`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
145
|`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.
Copy file name to clipboardExpand all lines: spec/acceptance/real-environment-validation.md
+13-9Lines changed: 13 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,14 +4,16 @@
4
4
5
5
Начиная с `2026-04-22`, source of truth для real-env happy-path является GitHub Actions workflow [`ci.yml`](../.github/workflows/ci.yml) с matrix на `ubuntu-latest` и `windows-latest`, а локальные скрипты в `scripts/test/*` остаются helper/entrypoint-слоем для этого workflow.
6
6
7
-
Обязательный smoke-контур для обеих ОС один и тот же:
7
+
Обязательный smoke-контур для обеих ОС один и тот же, когда для matrix OS настроены platform bundle secrets:
8
8
9
9
1.`build`
10
10
2.`syntax/check`
11
11
3.`test` Rust/CLI/MCP-контракта
12
12
4.`package`
13
13
5.`deploy-ready artifacts`
14
14
15
+
Если OS-specific bundle secrets отсутствуют, workflow оставляет blocking Rust/non-live checks и явно soft-skips real 1C package/deploy-ready smoke через `live_available=false`.
16
+
15
17
Под `deploy-ready artifacts` в этом репозитории понимается только публикация и проверка наличия/непустоты следующих файлов:
16
18
17
19
-`.cf`
@@ -45,11 +47,11 @@ bash scripts/test/ci-rust.sh
45
47
46
48
-`V8_RUNNER_CI_SCOPE=contract` или `full` запускает `cargo test --locked`
47
49
-`V8_RUNNER_CI_SCOPE=runtime-locks` запускает только lock-focused regression subset
-`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`
49
51
50
52
### 2. Mandatory Linux/Windows happy-path
51
53
52
-
Назначение: одинаково обязательный smoke для `Linux` и `Windows` на trusted контексте.
54
+
Назначение: одинаково обязательный smoke для `Linux` и `Windows` на trusted контексте при настроенных OS-specific bundle secrets. Без них workflow явно сообщает degraded coverage и оставляет blocking только Rust/non-live части.
`scripts/test/live-cli-fixture.sh` в mandatory профиле обязан выполнить одинаковые стадии для обеих ОС:
69
+
`scripts/test/live-cli-fixture.sh` в mandatory профиле обязан выполнить одинаковые стадии для обеих ОС, когда `V8TR_DESIGNER_REAL_CONFIG` материализован:
68
70
69
71
1.`init/setup infobase`
70
72
2.`build --full-rebuild`
@@ -95,18 +97,20 @@ Partial smoke contract:
95
97
96
98
## Gating contract
97
99
98
-
Mandatory happy-path должен быть blocking только для:
100
+
Mandatory happy-path должен быть blocking live-smoke только для:
99
101
100
102
-`master`
101
103
- trusted branches
102
104
- same-repo PR
105
+
- OS-specific platform bundle secrets configured for the matrix OS
103
106
104
107
Для fork PR live jobs не должны становиться blocking. В этом репозитории это выражено workflow-файлом `.github/workflows/ci.yml` и тем же env hook-контрактом:
105
108
106
109
- mandatory designer smoke требует `V8TR_DESIGNER_REAL_CONFIG`
107
110
- workflow может разрешить soft-skip только через `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1`
108
111
- без этого hook `scripts/test/live-cli-fixture.sh` падает, если `V8TR_DESIGNER_REAL_CONFIG` не задан
109
-
- trusted path устанавливает 1С из OS-specific bundle secret, материализует 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`
112
+
- 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
110
114
- fork PR и Dependabot не получают install/bootstrap/upload path: workflow передает только `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1`, а upload deploy-ready артефактов остаётся trusted-only
111
115
112
116
## Контракт `live-cli-fixture`
@@ -204,15 +208,15 @@ Windows runner contract for this helper layer is explicit:
204
208
| Контур | Linux | Windows | Blocking | Build | Syntax/check | Test | Package | Deploy-ready artifacts |
|`ci-rust contract`| yes | yes | yes | Rust | Rust | Rust | no | no |
207
-
|`ci-rust happy-path`| yes | yes | yes on trusted | Rust + real 1C | real | Rust by default; real 1C opt-in | real | real |
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|
208
212
|`live-mcp-http`| optional | optional | no | real via MCP | real via MCP | real via MCP | n/a | n/a |
209
213
|`live-cli-ibcmd`| optional | optional | no | real (`IBCMD`) | n/a | n/a | diagnostic dump/export only | n/a |
210
214
|`live-cli-designer`| optional | optional | no | real (`DESIGNER`) | real | real opt-in | real | real |
211
215
212
216
## Ограничения и TODO hooks
213
217
214
-
- Workflow `.github/workflows/ci.yml` уже зафиксировал contract/gating/upload wiring, но сам не умеет скачивать vendor installer публично: trusted path ожидает готовый platform bundle по секретному URL и обязательному SHA256.
218
+
- 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.
215
219
-`ibsrv` в workflow запускается как sidecar на том же `--db-path`, который зашит в dedicated file-based Designer config; сам CLI harness по текущему контракту остаётся file-connection oriented и не переключается на server connection.
216
220
-`live-cli-fixture` по умолчанию не запускает 1С test-stage; `va`, `yaxunit-all` и `module` остаются opt-in режимами для стендов, где установлен и проверен соответствующий headless runner.
217
221
-`live-mcp-http` и `live-cli-ibcmd` остаются отдельными non-blocking контурами.
218
-
- Mandatory designer smoke requires `V8TR_DESIGNER_REAL_CONFIG`; `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1` is reserved for fork/non-blocking soft-skip contexts.
222
+
- Mandatory designer smoke requires `V8TR_DESIGNER_REAL_CONFIG`; `V8TR_DESIGNER_ALLOW_MISSING_CONFIG=1` is reserved for fork/non-blocking soft-skip contexts and for trusted CI matrix entries where the OS-specific platform bundle secrets are not configured.
0 commit comments