CI: Add wasm-tools to the build image

wasm-tools is needed at build time to generate the WebAssembly spec
tests (INCLUDE_WASM_SPEC_TESTS), and the setup action downloads it from
the bytecodealliance releases CDN for every build job. That CDN
intermittently returns 504, which fails otherwise-green CI runs.

Bake the pinned wasm-tools 1.243.0 into the ladybird-ci image so the
Linux container jobs, which are the bulk of the build matrix, get it
from the image instead of fetching it per run.

A follow-up will drop the per-job download for the container platforms
once this image is published. The macOS and Windows jobs run on native
runners that do not use this image, so they keep downloading the same
pinned version.
This commit is contained in:
sideshowbarker 2026-06-14 16:46:15 +09:00 committed by Jelle Raaijmakers
parent 1484686c70
commit 13b609133d
2 changed files with 20 additions and 1 deletions

View file

@ -2,6 +2,7 @@ FROM ubuntu:26.04
ARG GCC_VERSION=14
ARG LLVM_VERSION=21
ARG WASM_TOOLS_VERSION=1.243.0
ENV DEBIAN_FRONTEND=noninteractive
ENV RUSTUP_HOME=/opt/rustup
@ -100,3 +101,21 @@ RUN apt-get update -o APT::Update::Error-Mode=any \
&& rustup component add rustfmt clippy \
&& rm -rf /opt/rustup/downloads /opt/rustup/tmp /opt/cargo/registry /tmp/rust-toolchain.toml \
&& rm -rf /var/lib/apt/lists/*
ARG TARGETARCH
# wasm-tools is required at build time to generate the WebAssembly spec tests
# (INCLUDE_WASM_SPEC_TESTS). The version is pinned for reproducible test generation.
RUN case "${TARGETARCH}" in \
amd64) WASM_TOOLS_ARCH=x86_64 ;; \
arm64) WASM_TOOLS_ARCH=aarch64 ;; \
*) echo "Unsupported TARGETARCH: ${TARGETARCH}" >&2 ; exit 1 ;; \
esac \
&& NAME="wasm-tools-${WASM_TOOLS_VERSION}-${WASM_TOOLS_ARCH}-linux" \
&& curl -fsSL --retry 5 --retry-delay 5 --retry-all-errors \
"https://github.com/bytecodealliance/wasm-tools/releases/download/v${WASM_TOOLS_VERSION}/${NAME}.tar.gz" \
-o /tmp/wasm-tools.tar.gz \
&& tar -xzf /tmp/wasm-tools.tar.gz -C /tmp \
&& install -m 0755 "/tmp/${NAME}/wasm-tools" /usr/local/bin/wasm-tools \
&& rm -rf /tmp/wasm-tools.tar.gz "/tmp/${NAME}" \
&& wasm-tools --version

View file

@ -1 +1 @@
2026.06.02
2026.06.14