Skip to content

Commit

Permalink
Share more code between wasi images
Browse files Browse the repository at this point in the history
  • Loading branch information
alexcrichton committed Aug 28, 2024
1 parent a77e201 commit b66e2b1
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 44 deletions.
25 changes: 3 additions & 22 deletions ci/docker/wasm32-wasip1/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,7 @@
FROM ubuntu:24.04

RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
clang \
xz-utils

# Wasmtime is used to execute tests and wasi-sdk is used to compile tests.
# Download appropriate versions here and configure various flags below.
#
# Note that these versions are kept in sync with the `wasm32-wasip2/Dockerfile`
# as well.
ENV WASMTIME 24.0.0
ENV WASI_SDK 24

RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$WASMTIME/wasmtime-v$WASMTIME-x86_64-linux.tar.xz | \
tar xJf -
ENV PATH=$PATH:/wasmtime-v$WASMTIME-x86_64-linux

RUN curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WASI_SDK/wasi-sdk-$WASI_SDK.0-x86_64-linux.deb
RUN dpkg -i ./wasi-sdk-*.deb
COPY wasi.sh /
RUN bash /wasi.sh

# Note that `-D_WASI_EMULATED_PROCESS_CLOCKS` is used to enable access to
# clock-related defines even though they're emulated. Also note that the usage
Expand All @@ -32,4 +13,4 @@ ENV CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime \
CARGO_TARGET_WASM32_WASIP1_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static" \
CC_wasm32_wasip1=/opt/wasi-sdk/bin/clang \
CFLAGS_wasm32_wasip1=-D_WASI_EMULATED_PROCESS_CLOCKS \
PATH=$PATH:/rust/bin
PATH=$PATH:/rust/bin:/wasmtime
25 changes: 3 additions & 22 deletions ci/docker/wasm32-wasip2/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,7 @@
FROM ubuntu:24.04

RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
clang \
xz-utils

# Wasmtime is used to execute tests and wasi-sdk is used to compile tests.
# Download appropriate versions here and configure various flags below.
#
# Note that these versions are kept in sync with the `wasm32-wasip2/Dockerfile`
# as well.
ENV WASMTIME 24.0.0
ENV WASI_SDK 24

RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$WASMTIME/wasmtime-v$WASMTIME-x86_64-linux.tar.xz | \
tar xJf -
ENV PATH=$PATH:/wasmtime-v$WASMTIME-x86_64-linux

RUN curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WASI_SDK/wasi-sdk-$WASI_SDK.0-x86_64-linux.deb
RUN dpkg -i ./wasi-sdk-*.deb
COPY wasi.sh /
RUN bash /wasi.sh

# Note that most of these are copied from `wasm32-wasip1/Dockerfile`
#
Expand All @@ -31,4 +12,4 @@ ENV CARGO_TARGET_WASM32_WASIP2_RUNNER=wasmtime \
CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS="-lwasi-emulated-process-clocks -Ctarget-feature=-crt-static -Clink-arg=-Wl,--export,cabi_realloc" \
CC_wasm32_wasip2=/opt/wasi-sdk/bin/clang \
CFLAGS_wasm32_wasip2=-D_WASI_EMULATED_PROCESS_CLOCKS \
PATH=$PATH:/rust/bin
PATH=$PATH:/rust/bin:/wasmtime
27 changes: 27 additions & 0 deletions ci/wasi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

set -ex

apt-get update
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
clang \
xz-utils

# Wasmtime is used to execute tests and wasi-sdk is used to compile tests.
# Download appropriate versions here and configure various flags below.
#
# At the time of this writing wasmtime 24.0.0 is the latest release and
# wasi-sdk-24 is the latest release, that these numbers match is just
# coincidence.
wasmtime=24.0.0
wasi_sdk=24

curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v$wasmtime/wasmtime-v$wasmtime-x86_64-linux.tar.xz | \
tar xJf -
mv wasmtime-v$wasmtime-x86_64-linux wasmtime

# The pre-built `*.deb` files for wasi-sdk install to `/opt/wasi-sdk`
curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_sdk/wasi-sdk-$wasi_sdk.0-x86_64-linux.deb
dpkg -i ./wasi-sdk-*.deb

0 comments on commit b66e2b1

Please sign in to comment.