about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2017-11-30 18:21:11 +0800
committerkennytm <kennytm@gmail.com>2017-12-03 18:36:56 +0800
commit183964505bf6775c90da5d034cc8951cd46d7c10 (patch)
treec139671a64afdb78acbf500bf90aaa93684ff53f
parent971b1ba42bcb318baf31047cf80a4cf532756ec8 (diff)
downloadrust-183964505bf6775c90da5d034cc8951cd46d7c10.tar.gz
rust-183964505bf6775c90da5d034cc8951cd46d7c10.zip
Update the tools CI to use --no-fail-fast and --save-toolstates.
-rw-r--r--appveyor.yml9
-rw-r--r--src/ci/docker/x86_64-gnu-tools/Dockerfile10
-rwxr-xr-xsrc/ci/docker/x86_64-gnu-tools/checktools.sh39
-rwxr-xr-xsrc/ci/run.sh3
4 files changed, 47 insertions, 14 deletions
diff --git a/appveyor.yml b/appveyor.yml
index 7cde52cd69e..b8fd479d0f1 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -27,13 +27,8 @@ environment:
 
   # MSVC tools tests
   - MSYS_BITS: 64
-    SCRIPT: >
-      python x.py test --no-fail-fast
-        src/tools/rls
-        src/tools/rustfmt
-        src/tools/miri
-        src/tools/clippy
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
+    SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py toolstates.json
+    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=toolstates.json
 
   # 32/64-bit MinGW builds.
   #
diff --git a/src/ci/docker/x86_64-gnu-tools/Dockerfile b/src/ci/docker/x86_64-gnu-tools/Dockerfile
index f4ba58e536f..fffad1c42df 100644
--- a/src/ci/docker/x86_64-gnu-tools/Dockerfile
+++ b/src/ci/docker/x86_64-gnu-tools/Dockerfile
@@ -17,9 +17,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 COPY scripts/sccache.sh /scripts/
 RUN sh /scripts/sccache.sh
 
-ENV RUST_CONFIGURE_ARGS --build=x86_64-unknown-linux-gnu
-ENV SCRIPT python2.7 ../x.py --no-fail-fast \
-  src/tools/rls \
-  src/tools/rustfmt \
-  src/tools/miri \
-  src/tools/clippy
+COPY x86_64-gnu-tools/checktools.sh /tmp/
+
+ENV RUST_CONFIGURE_ARGS --build=x86_64-unknown-linux-gnu --save-toolstates=/tmp/toolstates.json
+ENV SCRIPT /tmp/checktools.sh ../x.py /tmp/toolstates.json
diff --git a/src/ci/docker/x86_64-gnu-tools/checktools.sh b/src/ci/docker/x86_64-gnu-tools/checktools.sh
new file mode 100755
index 00000000000..bf39bc28a67
--- /dev/null
+++ b/src/ci/docker/x86_64-gnu-tools/checktools.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# 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 -eu
+
+X_PY="$1"
+TOOLSTATE_FILE="$2"
+
+touch "$TOOLSTATE_FILE"
+
+set +e
+python2.7 "$X_PY" test --no-fail-fast \
+    src/tools/rls \
+    src/tools/rustfmt \
+    src/tools/miri \
+    src/tools/clippy
+TEST_RESULT=$?
+set -e
+
+# FIXME: Upload this file to the repository.
+cat "$TOOLSTATE_FILE"
+
+# FIXME: After we can properly inform dev-tool maintainers about failure,
+#        comment out the `exit 0` below.
+if [ "$RUST_RELEASE_CHANNEL" = nightly ]; then
+    # exit 0
+    true
+fi
+
+exit $TEST_RESULT
diff --git a/src/ci/run.sh b/src/ci/run.sh
index ffb3532f497..dab385c0964 100755
--- a/src/ci/run.sh
+++ b/src/ci/run.sh
@@ -42,8 +42,9 @@ fi
 #
 # FIXME: need a scheme for changing this `nightly` value to `beta` and `stable`
 #        either automatically or manually.
+export RUST_RELEASE_CHANNEL=nightly
 if [ "$DEPLOY$DEPLOY_ALT" != "" ]; then
-  RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --release-channel=nightly"
+  RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --release-channel=$RUST_RELEASE_CHANNEL"
   RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-llvm-static-stdcpp"
 
   if [ "$NO_LLVM_ASSERTIONS" = "1" ]; then