2016-09-27 13:22:10 +08:00
|
|
|
# Small script to run tests for a target (or all targets) inside all the
|
|
|
|
# respective docker images.
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
run() {
|
2016-10-01 07:37:41 +08:00
|
|
|
local target=$1
|
2016-10-01 06:21:54 +08:00
|
|
|
|
|
|
|
echo $target
|
2016-10-01 07:37:41 +08:00
|
|
|
|
|
|
|
# This directory needs to exist before calling docker, otherwise docker will create it but it
|
|
|
|
# will be owned by root
|
|
|
|
mkdir -p target
|
|
|
|
|
2016-10-01 06:21:54 +08:00
|
|
|
docker build -t $target ci/docker/$target
|
2016-09-27 13:22:10 +08:00
|
|
|
docker run \
|
2016-10-01 06:21:54 +08:00
|
|
|
--rm \
|
2016-10-01 07:37:41 +08:00
|
|
|
--user $(id -u):$(id -g) \
|
2016-10-01 06:21:54 +08:00
|
|
|
-e CARGO_HOME=/cargo \
|
|
|
|
-e CARGO_TARGET_DIR=/target \
|
2019-04-03 02:44:28 +08:00
|
|
|
-e XARGO \
|
2016-10-01 06:21:54 +08:00
|
|
|
-v $HOME/.cargo:/cargo \
|
|
|
|
-v `pwd`/target:/target \
|
|
|
|
-v `pwd`:/checkout:ro \
|
|
|
|
-v `rustc --print sysroot`:/rust:ro \
|
|
|
|
-w /checkout \
|
2019-04-03 00:35:47 +08:00
|
|
|
$target \
|
2016-10-01 09:21:15 +08:00
|
|
|
sh -c "HOME=/tmp PATH=\$PATH:/rust/bin ci/run.sh $target"
|
2016-09-27 13:22:10 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
for d in `ls ci/docker/`; do
|
|
|
|
run $d
|
|
|
|
done
|
|
|
|
else
|
|
|
|
run $1
|
|
|
|
fi
|