This is an automated email from the ASF dual-hosted git repository.
maciej pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new ab8834d92 fix(ci): prevent v8/musl build failures in artifacts and
Docker (#2844)
ab8834d92 is described below
commit ab8834d92016b8f4e774ce34b20a33be5f07fdeb
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Mon Mar 2 09:41:17 2026 +0100
fix(ci): prevent v8/musl build failures in artifacts and Docker (#2844)
charming's "ssr" feature pulls deno_core -> rusty_v8, which
has no prebuilt static libraries for any musl target. The
bench-dashboard exclusion only covered aarch64-musl, leaving
x86_64-musl broken after #2833 added the ssr feature.
Extend the musl exclusion to all musl targets in the artifact
build. Scope each Dockerfile's cargo-chef cook to only the
packages it ships (-p), avoiding workspace-wide feature
unification that drags in v8 for images that never use it.
---
.github/workflows/_build_rust_artifacts.yml | 7 +++----
core/ai/mcp/Dockerfile | 6 ++++--
core/connectors/runtime/Dockerfile | 6 ++++--
core/server/Dockerfile | 6 ++++--
4 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/_build_rust_artifacts.yml
b/.github/workflows/_build_rust_artifacts.yml
index 3c2be13a3..5c1cd5c94 100644
--- a/.github/workflows/_build_rust_artifacts.yml
+++ b/.github/workflows/_build_rust_artifacts.yml
@@ -145,11 +145,10 @@ jobs:
fi
# iggy-bench-dashboard-server enables charming's "ssr" feature
(deno_core -> v8).
- # v8 has no prebuilt binary for aarch64-unknown-linux-musl, so
exclude dashboard
- # crates to prevent cargo feature unification from pulling V8 into
unrelated binaries.
- # TODO: build V8 from source (V8_FROM_SOURCE=1, ~30min + clang) or
wait for upstream support.
+ # rusty_v8 has no prebuilt static libraries for any musl target, so
exclude
+ # dashboard crates to prevent cargo feature unification from pulling
V8.
exclude_flags=()
- if [[ "${{ matrix.target }}" == "aarch64-unknown-linux-musl" ]]; then
+ if [[ "${{ matrix.libc }}" == "musl" ]]; then
exclude_flags+=(--workspace --exclude iggy-bench-dashboard-server
--exclude bench-dashboard-frontend)
fi
diff --git a/core/ai/mcp/Dockerfile b/core/ai/mcp/Dockerfile
index f413ad11a..d57277ff4 100644
--- a/core/ai/mcp/Dockerfile
+++ b/core/ai/mcp/Dockerfile
@@ -57,9 +57,11 @@ RUN
--mount=type=cache,target=/usr/local/cargo/registry,id=cargo-registry-${TARG
*) echo "Unsupported platform/libc combination: $TARGETPLATFORM/$LIBC" &&
exit 1 ;; \
esac && \
if [ "$PROFILE" = "debug" ]; then \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild \
+ -p iggy-mcp; \
else \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release \
+ -p iggy-mcp; \
fi
COPY . .
diff --git a/core/connectors/runtime/Dockerfile
b/core/connectors/runtime/Dockerfile
index f7de446ba..4c8034daf 100644
--- a/core/connectors/runtime/Dockerfile
+++ b/core/connectors/runtime/Dockerfile
@@ -60,9 +60,11 @@ RUN
--mount=type=cache,target=/usr/local/cargo/registry,id=cargo-registry-${TARG
*) echo "Unsupported platform/libc combination: $TARGETPLATFORM/$LIBC" &&
exit 1 ;; \
esac && \
if [ "$PROFILE" = "debug" ]; then \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild \
+ -p iggy-connectors; \
else \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release \
+ -p iggy-connectors; \
fi
COPY . .
diff --git a/core/server/Dockerfile b/core/server/Dockerfile
index 69fea6d3c..b41a1f190 100644
--- a/core/server/Dockerfile
+++ b/core/server/Dockerfile
@@ -58,9 +58,11 @@ RUN
--mount=type=cache,target=/usr/local/cargo/registry,id=cargo-registry-${TARG
*) echo "Unsupported $TARGETPLATFORM/$LIBC" && exit 1 ;; \
esac && \
if [ "$PROFILE" = "debug" ]; then \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild \
+ -p server -p iggy-cli; \
else \
- cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release; \
+ cargo chef cook --recipe-path recipe.json --target ${RUST_TARGET}
--zigbuild --release \
+ -p server -p iggy-cli; \
fi
COPY . .