From cb27744d76d4ce39a39bc326268715dbd50a12a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20T=C3=B6rcsv=C3=A1ri?= Date: Tue, 14 Jul 2026 15:12:17 +0200 Subject: [PATCH] tasks-runner 0001 R2: kicad_tools joins the CI build set + lint gates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker/build.sh "all" now includes kicad_tools (finalizes in-container, so it never contends with the editor's wasm-opt critical path); .ci-cache-epoch bumped — the cached FINAL output set changes. wasm-build.yml gains the corpus-lint + CLI-contract gate step (run_tests leg): with the artifact now built in CI, the skip-when-unbuilt scripts bite. Release runs (upload_output) start shipping kicad_tools in the wasm-output artifact — the closed repo's runner-image workflow consumes it from there. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01HLua64PCVwkQ1hpWdaf1Gm --- .ci-cache-epoch | 2 +- .github/workflows/wasm-build.yml | 14 ++++++++++++++ docker/build.sh | 5 ++++- 3 files changed, 19 insertions(+), 2 deletions(-) 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