diff --git a/.ci-cache-epoch b/.ci-cache-epoch index 573541a..d00491f 100644 --- a/.ci-cache-epoch +++ b/.ci-cache-epoch @@ -1 +1 @@ -0 +1 diff --git a/.github/workflows/wasm-build.yml b/.github/workflows/wasm-build.yml index 0554267..bbe1676 100644 --- a/.github/workflows/wasm-build.yml +++ b/.github/workflows/wasm-build.yml @@ -379,6 +379,20 @@ jobs: corepack enable pnpm install --frozen-lockfile + # kicad_tools gates (tasks-runner 0001 R2): the corpus lint (fixtures + + # shared-codec round-trips — the wrapInBoardEnvelope-class E3 gate, + # kicad-validity 0001 §5) and the CLI contract the backend job runner + # keys off (exit codes, resave semantics). Both scripts skip when the + # artifact is absent, but "all" builds kicad_tools now, so here they + # bite. Needs tests npm deps (above) + web workspace deps (the corpus + # lint imports the shared codec). + - name: kicad_tools corpus lint + CLI contract + if: inputs.run_tests + working-directory: tests + run: | + npm run corpus:lint + npm run tools:contract + # Browser binaries keyed on the lockfile (which pins the playwright version). # On a hit `playwright install` skips the downloads; --with-deps still # apt-installs its small OS dep set either way. diff --git a/docker/build.sh b/docker/build.sh index e4281fc..dce7482 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -108,8 +108,11 @@ shift # host-side wasm-opt chain is the critical path and must start as early as # possible (especially with KICAD_PIPELINE=1). pcbnew/eeschema stay buildable as # standalone debug aids but are not part of "all" (not deployed). +# kicad_tools joined "all" for the runner-image CI (tasks-runner 0001 R2) — +# it finalizes in-container (no host wasm-opt tail), so it never contends +# with the editor's critical path. if [[ "$APP_NAME" == "all" ]]; then - APPS=(kicad_editor occ_service calculator pl_editor gerbview) + APPS=(kicad_editor occ_service calculator pl_editor gerbview kicad_tools) else IFS=',' read -r -a APPS <<< "$APP_NAME" for app in "${APPS[@]}"; do