feat(zig): pin zig 0.15.2 via mise and wire taskfile + CI job - #47
Merged
Merged
Conversation
Add a mise-managed Zig toolchain for the sidecar core. zig is resolved with `mise which zig --tool zig@<pinned>` instead of PATH, since PATH may hold an IDE-bundled zig or a mise default for another version. - .tool-versions: pin zig 0.15.2 - taskfiles/zig.yml: format, lint, test, build, clean and a TARGET-driven cross-compile task, each behind an internal _check-zig-version task that fails with the expected/found version and the mise fix - taskfile.yml: include zig and call zig:lint/format/test from the root aggregate tasks (root build stays Tauri-only) - zig-core/: placeholder executable plus one unit test; the vendored SQLite binding lands in TASK-355.2 - .github/workflows/test.yml: standalone zig job on a Blacksmith Linux runner, caching zig-core/.zig-cache and zig-core/zig-out, absent from every other job's needs so it cannot extend the critical path
The zig CI job used arduino/setup-task, inconsistent with the go-task/setup-task action already relied on elsewhere in this repo (.github/actions/setup-tauri-build/action.yml).
This was referenced Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.tool-versions, resolved viamise which zig --tool zig@<pinned>since PATH may hold an IDE-bundled zig or a mise default for a different versiontaskfiles/zig.yml(format, lint, test, build, cross-compile, clean), each gated by an internal_check-zig-versiontask that fails with an actionable expected/found/fix messagezig:lint/zig:format/zig:testinto the rootlint/format/testtaskszigCI job on a Blacksmith Linux runner (.github/workflows/test.yml), cached onzig-core/.zig-cache/zig-out, and deliberately absent from every other job'sneeds:so it cannot extend the critical pathzig-core/(executable + one test) — no SQLite/HTTP logic; that's TASK-355.2Notes
zigjob on GitHub Actions and can't be measured from a worktree — left unchecked on TASK-355.1 with instructions to record it after this merges.fb22c40after SIGBUS crashes under concurrent tokio execution) — an unrelated architecture (static-lib FFI vs. this HTTP-sidecar POC), but worth knowing about for TASK-355.2+.Test plan
task zig:format/zig:lint/zig:test/zig:buildall pass locally against the placeholderzig-core/task zig:cross-compilefails with an actionable message whenTARGETis unset, succeeds foraarch64-macos/x86_64-macos/x86_64-linux/x86_64-windowsactionlint .github/workflows/test.ymlcleanzigCI job (AC#6) — to be recorded after this merges