瀏覽代碼

fix(ci): preserve TypeRT contract build order on Windows

imccyu 1 月之前
父節點
當前提交
41677c3be0
共有 1 個文件被更改,包括 13 次插入 和 5 次删除
  1. 13 5
      scripts/wine-windows-gates.sh

+ 13 - 5
scripts/wine-windows-gates.sh

@@ -204,11 +204,14 @@ cat "$scratch/logs/smoke.log"
 grep -q '^smoke: win32 x64' "$scratch/logs/smoke.log" || { echo 'wine-windows-gates: Windows Node smoke did not report win32 x64' >&2; exit 1; }
 
 # ---- the two blocking surfaces, concurrently ------------------------------
-# The same shape run-gates gives ci-windows-blocking on native Windows:
-# `build` = tsc -b then tsdown, `production site` = the VitePress build. Both
-# statuses are captured so one failure cannot hide the other's result.
+# The build preserves the face order from package.json: generate Host contracts
+# before either aggregate typecheck, then bundle the completed workspace.
+# Both statuses are captured so one failure cannot hide the other's result.
 build_gate() {
-  wine_node "$scratch/logs/tsc.log" "$tsc_js" -b --pretty false || return $?
+  wine_node "$scratch/logs/contracts-tsc.log" "$tsc_js" -b packages/typert/generator --pretty false || return $?
+  wine_node "$scratch/logs/contracts-tsdown.log" "$tsdown_js" --config tsdown.typert-host.config.ts || return $?
+  wine_node "$scratch/logs/host-tsc.log" "$tsc_js" -b tsconfig.host.json --pretty false || return $?
+  wine_node "$scratch/logs/client-tsc.log" "$tsc_js" -b tsconfig.client.json --pretty false || return $?
   wine_node "$scratch/logs/tsdown.log" "$tsdown_js"
 }
 site_gate() {
@@ -235,7 +238,12 @@ report() {
     for log in "$@"; do tail -n 200 "$log" >&2 || true; done
   fi
 }
-report 'build (tsc -b, tsdown)' "$build_status" "$scratch/logs/tsc.log" "$scratch/logs/tsdown.log"
+report 'build (contract prepass, tsc, tsdown)' "$build_status" \
+  "$scratch/logs/contracts-tsc.log" \
+  "$scratch/logs/contracts-tsdown.log" \
+  "$scratch/logs/host-tsc.log" \
+  "$scratch/logs/client-tsc.log" \
+  "$scratch/logs/tsdown.log"
 report 'production site (vitepress build)' "$site_status" "$scratch/logs/site.log"
 if (( build_status != 0 )); then exit "$build_status"; fi
 exit "$site_status"