mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Add docker image for wasm32-unknown-emscripten
- rename emscripten docker image to asmjs - create wasm32 docker image
This commit is contained in:
parent
5fe923d434
commit
9b88a1b30b
@ -36,7 +36,7 @@ matrix:
|
||||
- env: IMAGE=dist-x86_64-linux DEPLOY=1 ALLOW_TRY=1
|
||||
- env: IMAGE=dist-x86_64-musl DEPLOY=1
|
||||
- env: IMAGE=dist-x86_64-netbsd DEPLOY=1
|
||||
- env: IMAGE=emscripten
|
||||
- env: IMAGE=asmjs
|
||||
- env: IMAGE=i686-gnu
|
||||
- env: IMAGE=i686-gnu-nopt
|
||||
- env: IMAGE=x86_64-gnu
|
||||
|
44
src/ci/docker/asmjs/Dockerfile
Normal file
44
src/ci/docker/asmjs/Dockerfile
Normal file
@ -0,0 +1,44 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
g++ \
|
||||
make \
|
||||
file \
|
||||
curl \
|
||||
ca-certificates \
|
||||
python \
|
||||
git \
|
||||
cmake \
|
||||
sudo \
|
||||
gdb \
|
||||
xz-utils
|
||||
|
||||
# dumb-init
|
||||
COPY scripts/dumb-init.sh /scripts/
|
||||
RUN sh /scripts/dumb-init.sh
|
||||
|
||||
# emscripten
|
||||
COPY scripts/emscripten.sh /scripts/
|
||||
RUN bash /scripts/emscripten.sh
|
||||
|
||||
# env
|
||||
ENV PATH=$PATH:/emsdk-portable
|
||||
ENV PATH=$PATH:/emsdk-portable/clang/e1.37.13_64bit/
|
||||
ENV PATH=$PATH:/emsdk-portable/emscripten/1.37.13/
|
||||
ENV PATH=$PATH:/emsdk-portable/node/4.1.1_64bit/bin/
|
||||
ENV EMSCRIPTEN=/emsdk-portable/emscripten/1.37.13/
|
||||
ENV BINARYEN_ROOT=/emsdk-portable/clang/e1.37.13_64bit/binaryen/
|
||||
ENV EM_CONFIG=/emsdk-portable/.emscripten
|
||||
|
||||
ENV TARGETS=asmjs-unknown-emscripten
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --target=$TARGETS
|
||||
|
||||
ENV SCRIPT python2.7 ../x.py test --target $TARGETS
|
||||
|
||||
# cache
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
# init
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
@ -1,41 +0,0 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
g++ \
|
||||
make \
|
||||
file \
|
||||
curl \
|
||||
ca-certificates \
|
||||
python \
|
||||
git \
|
||||
cmake \
|
||||
sudo \
|
||||
gdb \
|
||||
xz-utils \
|
||||
lib32stdc++6
|
||||
|
||||
RUN curl -o /usr/local/bin/sccache \
|
||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-05-12-sccache-x86_64-unknown-linux-musl && \
|
||||
chmod +x /usr/local/bin/sccache
|
||||
|
||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||
dpkg -i dumb-init_*.deb && \
|
||||
rm dumb-init_*.deb
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||
|
||||
WORKDIR /tmp
|
||||
COPY emscripten/build-emscripten.sh /tmp/
|
||||
RUN ./build-emscripten.sh
|
||||
ENV PATH=$PATH:/tmp/emsdk_portable
|
||||
ENV PATH=$PATH:/tmp/emsdk_portable/clang/tag-e1.37.10/build_tag-e1.37.10_32/bin
|
||||
ENV PATH=$PATH:/tmp/emsdk_portable/node/4.1.1_32bit/bin
|
||||
ENV PATH=$PATH:/tmp/emsdk_portable/emscripten/tag-1.37.10
|
||||
ENV EMSCRIPTEN=/tmp/emsdk_portable/emscripten/tag-1.37.10
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --target=asmjs-unknown-emscripten
|
||||
|
||||
# Run `emcc` first as it's got a prompt and doesn't actually do anything, after
|
||||
# that's done with do the real build.
|
||||
ENV SCRIPT emcc && \
|
||||
python2.7 ../x.py test --target asmjs-unknown-emscripten
|
||||
|
@ -1,53 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
# file at the top-level directory of this distribution and at
|
||||
# http://rust-lang.org/COPYRIGHT.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
# option. This file may not be copied, modified, or distributed
|
||||
# except according to those terms.
|
||||
|
||||
set -ex
|
||||
|
||||
hide_output() {
|
||||
set +x
|
||||
on_err="
|
||||
echo ERROR: An error was encountered with the build.
|
||||
cat /tmp/build.log
|
||||
exit 1
|
||||
"
|
||||
trap "$on_err" ERR
|
||||
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||
PING_LOOP_PID=$!
|
||||
$@ &> /tmp/build.log
|
||||
trap - ERR
|
||||
kill $PING_LOOP_PID
|
||||
rm /tmp/build.log
|
||||
set -x
|
||||
}
|
||||
|
||||
curl https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz | \
|
||||
tar xzf -
|
||||
|
||||
# Some versions of the EMSDK archive have their contents in .emsdk-portable
|
||||
# and others in emsdk_portable. Make sure the EMSDK ends up in a fixed path.
|
||||
if [ -d emsdk-portable ]; then
|
||||
mv emsdk-portable emsdk_portable
|
||||
fi
|
||||
|
||||
if [ ! -d emsdk_portable ]; then
|
||||
echo "ERROR: Invalid emsdk archive. Dumping working directory." >&2
|
||||
ls -l
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Some versions of the EMSDK set the permissions of the root directory to
|
||||
# 0700. Ensure the directory is readable by all users.
|
||||
chmod 755 emsdk_portable
|
||||
|
||||
source emsdk_portable/emsdk_env.sh
|
||||
hide_output emsdk update
|
||||
hide_output emsdk install --build=Release sdk-tag-1.37.10-32bit
|
||||
hide_output emsdk activate --build=Release sdk-tag-1.37.10-32bit
|
44
src/ci/docker/wasm32/Dockerfile
Normal file
44
src/ci/docker/wasm32/Dockerfile
Normal file
@ -0,0 +1,44 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
g++ \
|
||||
make \
|
||||
file \
|
||||
curl \
|
||||
ca-certificates \
|
||||
python \
|
||||
git \
|
||||
cmake \
|
||||
sudo \
|
||||
gdb \
|
||||
xz-utils
|
||||
|
||||
# dumb-init
|
||||
COPY scripts/dumb-init.sh /scripts/
|
||||
RUN sh /scripts/dumb-init.sh
|
||||
|
||||
# emscripten
|
||||
COPY scripts/emscripten.sh /scripts/
|
||||
RUN bash /scripts/emscripten.sh
|
||||
COPY wasm32/node /usr/local/bin/node
|
||||
|
||||
# env
|
||||
ENV PATH=$PATH:/emsdk-portable
|
||||
ENV PATH=$PATH:/emsdk-portable/clang/e1.37.13_64bit/
|
||||
ENV PATH=$PATH:/emsdk-portable/emscripten/1.37.13/
|
||||
ENV EMSCRIPTEN=/emsdk-portable/emscripten/1.37.13/
|
||||
ENV BINARYEN_ROOT=/emsdk-portable/clang/e1.37.13_64bit/binaryen/
|
||||
ENV EM_CONFIG=/emsdk-portable/.emscripten
|
||||
|
||||
ENV TARGETS=wasm32-unknown-emscripten
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --target=$TARGETS
|
||||
|
||||
ENV SCRIPT python2.7 ../x.py test --target $TARGETS
|
||||
|
||||
# cache
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
# init
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
18
src/ci/docker/wasm32/node
Executable file
18
src/ci/docker/wasm32/node
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
# file at the top-level directory of this distribution and at
|
||||
# http://rust-lang.org/COPYRIGHT.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
# option. This file may not be copied, modified, or distributed
|
||||
# except according to those terms.
|
||||
|
||||
path="$(dirname $1)"
|
||||
file="$(basename $1)"
|
||||
|
||||
shift
|
||||
|
||||
cd "$path"
|
||||
exec /node-v8.0.0-linux-x64/bin/node "$file" "$@"
|
Loading…
Reference in New Issue
Block a user