新增 project release gate wrapper
This commit is contained in:
@@ -9,7 +9,13 @@ handoff. It links the browser/UI workflow surface, SDK surface,
|
||||
OPFS/session persistence scope, sim-config coverage baseline, blocked
|
||||
host/runtime families, source reuse rules, drift rules, and acceptance tracker.
|
||||
|
||||
The minimum release validation commands for the current scope are:
|
||||
The project release gate for the current scope is:
|
||||
|
||||
```bash
|
||||
wasm-port/tests/host/verify_project_release_gate.sh
|
||||
```
|
||||
|
||||
It executes these minimum release validation commands:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
@@ -31,6 +37,7 @@ sim_configs_coverage_docs_node_smoke=ok
|
||||
host_runtime_boundary_docs_node_smoke=ok
|
||||
sdk_surface_node_smoke=ok
|
||||
host_wasm_opfs_browser_smokes=ok
|
||||
project_release_gate=ok
|
||||
```
|
||||
|
||||
Browser/UI entry points are documented in `docs/panel-entry.md`. Stable SDK
|
||||
|
||||
@@ -37,7 +37,14 @@ continuation records are in `../text14.txt`.
|
||||
|
||||
## Required release gates
|
||||
|
||||
Run these before claiming the current scope is release-ready:
|
||||
Run the single project release gate before claiming the current scope is
|
||||
release-ready:
|
||||
|
||||
```bash
|
||||
wasm-port/tests/host/verify_project_release_gate.sh
|
||||
```
|
||||
|
||||
It executes the same minimum release validation commands:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
@@ -55,6 +62,7 @@ browser smoke coverage. A passing aggregate ends with:
|
||||
|
||||
```text
|
||||
host_wasm_opfs_browser_smokes=ok
|
||||
project_release_gate=ok
|
||||
```
|
||||
|
||||
## Expected baseline outputs
|
||||
@@ -110,6 +118,7 @@ must not be run on hosts that do not provide the required LinuxCNC runtime.
|
||||
- UI Node smoke passes.
|
||||
- Browser INI panel smoke passes.
|
||||
- Host aggregate smoke passes.
|
||||
- `verify_project_release_gate.sh` passes.
|
||||
- SDK exports match `runtime/sdk/README.md`.
|
||||
- `docs/panel-entry.md` documents the external shell workflow surface.
|
||||
- OPFS/session, sim-config coverage, host/runtime boundary, source reuse, and
|
||||
|
||||
@@ -17,6 +17,7 @@ const sdkReadmeText = readFileSync(resolve(root, "runtime/sdk/README.md"), "utf8
|
||||
const sourceReuseText = readFileSync(resolve(root, "docs/source-reuse-map.md"), "utf8");
|
||||
const driftText = readFileSync(resolve(root, "docs/drift-report.md"), "utf8");
|
||||
const hostSmokeText = readFileSync(resolve(root, "tests/host/verify_host_smokes.sh"), "utf8");
|
||||
const projectReleaseGateText = readFileSync(resolve(root, "tests/host/verify_project_release_gate.sh"), "utf8");
|
||||
const trackerText = readFileSync(resolve(root, "../PROJECT_COMPLETION_TRACKER.md"), "utf8");
|
||||
|
||||
for (const phrase of [
|
||||
@@ -33,7 +34,9 @@ for (const phrase of [
|
||||
"workflow overview embedding mount DOM",
|
||||
"verify_no_standalone_cnc_semantics.sh",
|
||||
"verify_host_smokes.sh",
|
||||
"verify_project_release_gate.sh",
|
||||
"host_wasm_opfs_browser_smokes=ok",
|
||||
"project_release_gate=ok",
|
||||
"sim_configs_wasm_node_inventory_unexpected_fail=0",
|
||||
"browser_ini_shell_integration_workflow_smoke=ok",
|
||||
"project_release_handoff_docs_node_smoke=ok",
|
||||
@@ -52,6 +55,20 @@ for (const phrase of [
|
||||
assert.match(hostSmokeText, literalRegExp("verify_project_release_handoff_docs.sh"));
|
||||
}
|
||||
|
||||
for (const phrase of [
|
||||
"git diff --check",
|
||||
"verify_vendor_sync.sh",
|
||||
"verify_no_standalone_cnc_semantics.sh",
|
||||
"verify_interp_wasm.sh",
|
||||
"verify_sim_configs_inventory_wasm.sh",
|
||||
"verify_ini_panel_browser.sh",
|
||||
"verify_ui_node_smokes.sh",
|
||||
"verify_host_smokes.sh",
|
||||
"project_release_gate=ok",
|
||||
]) {
|
||||
assert.match(projectReleaseGateText, literalRegExp(phrase));
|
||||
}
|
||||
|
||||
for (const phrase of [
|
||||
"docs/project-release-handoff.md",
|
||||
"runtime/sdk/src/index.js",
|
||||
@@ -70,6 +87,7 @@ for (const phrase of [
|
||||
assert.match(sourceReuseText, literalRegExp("docs/project-release-handoff.md"));
|
||||
assert.match(driftText, literalRegExp("docs/project-release-handoff.md"));
|
||||
assert.match(trackerText, /Documentation\/release gate/);
|
||||
assert.match(trackerText, /Project release gate wrapper/);
|
||||
assert.match(trackerText, /Final Acceptance Checklist/);
|
||||
|
||||
console.log("project_release_handoff_docs_node_smoke=ok");
|
||||
|
||||
18
wasm-port/tests/host/verify_project_release_gate.sh
Executable file
18
wasm-port/tests/host/verify_project_release_gate.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
REPO_ROOT="$(cd "$ROOT_DIR/.." && pwd)"
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
git diff --check
|
||||
"$ROOT_DIR/tools/verify_vendor_sync.sh"
|
||||
"$ROOT_DIR/tools/verify_no_standalone_cnc_semantics.sh"
|
||||
SKIP_INTERP_BUILD=1 "$ROOT_DIR/tests/wasm/node/verify_interp_wasm.sh"
|
||||
SKIP_INTERP_BUILD=1 "$ROOT_DIR/tests/wasm/node/verify_sim_configs_inventory_wasm.sh"
|
||||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 "$ROOT_DIR/tests/browser/verify_ini_panel_browser.sh"
|
||||
"$ROOT_DIR/tests/ui/node/verify_ui_node_smokes.sh"
|
||||
"$ROOT_DIR/tests/host/verify_host_smokes.sh"
|
||||
|
||||
echo "project_release_gate=ok"
|
||||
Reference in New Issue
Block a user