v0.10.1: drop Windows from release matrix; simplify Dockerfile - #45
Merged
Merged
Conversation
Two release-pipeline fixes shaken out by the first `v0.10.0` tag: - The Windows job failed because the library doesn't compile on `x86_64-pc-windows-msvc`: `src/server/admin.rs` uses `tokio::net::UnixListener` and POSIX `Permissions::set_mode` unconditionally. Drop the target from the matrix until the admin API is `#[cfg(unix)]`-gated. README updated to match. - The Docker job failed with "failed to compute cache key: /usr/local/bin/rusnel: not found". The previous Dockerfile used BuildKit cache mounts on `target/` plus a cross-compile path for arm64; the cache mount got unmounted before the multi-stage `COPY --from=builder` could resolve the binary. Replace with a plain `cargo build --release` under buildx + QEMU emulation, using `gcr.io/distroless/cc-debian12:nonroot` as the runtime base. Slower arm64 build (a few minutes under QEMU) in exchange for a Dockerfile that actually works. Co-authored-by: Cursor <cursoragent@cursor.com>
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
Two release-pipeline fixes shaken out by the first
v0.10.0tag run.Drop Windows from the release matrix
x86_64-pc-windows-msvcfailed to build:src/server/admin.rsusestokio::net::UnixListenerand POSIXPermissions::set_modeunconditionally — both Unix-only. This is a real product limitation, not a workflow tweak: properly supporting Windows means#[cfg(unix)]-gating the entire admin API module (or backing it with a Windows named pipe). Out of scope here. README updated to call out the limitation explicitly.Simplify the Dockerfile
The multi-arch GHCR job failed with:
Root cause: the previous Dockerfile used BuildKit cache mounts on
target/plus a cross-compile path for arm64. The cache mount was unmounted before the multi-stageCOPY --from=buildercould resolve the binary, so the cache key calculation found nothing.Replaced with a plain
cargo build --releaseunder buildx + QEMU emulation. Each arch goes through the same build path; the cost is slower arm64 builds (a few minutes under QEMU) and the benefit is a Dockerfile that actually works and that any contributor can reproduce locally with one command. Final image is `gcr.io/distroless/cc-debian12:nonroot` (~30 MB, runs unprivileged).Notes
Made with Cursor