From fa0ec34f1bf864065655ed829cbf03361e56d729 Mon Sep 17 00:00:00 2001
From: kennytm <kennytm@gmail.com>
Date: Thu, 26 Jul 2018 14:37:17 +0800
Subject: [PATCH 1/3] Test travis 9696.

---
 src/ci/docker/run.sh | 28 ++++++++++++++++++++++++++++
 src/ci/run.sh        | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+)

diff --git a/src/ci/docker/run.sh b/src/ci/docker/run.sh
index b1ee636644ec7..591cab3c514c5 100755
--- a/src/ci/docker/run.sh
+++ b/src/ci/docker/run.sh
@@ -9,6 +9,32 @@
 # option. This file may not be copied, modified, or distributed
 # except according to those terms.
 
+failures=0
+
+for try in 0 1 2 3; do
+for nameserver in 8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1 169.254.169.254; do
+    for h in github.com s3-us-west-1.amazonaws.com; do
+    echo "---> $(date -u): try ${try} ${h} via ${nameserver}:"
+    if ! dig +short "@${nameserver}" "${h}"; then
+        echo "    x Failed to lookup "${h}" via ${nameserver}"
+        failures=$((failures + 1))
+    fi
+    if ! dig -6 +short "@${nameserver}" "${h}"; then
+        echo "    x Failed to lookup "${h}" via ${nameserver}"
+        failures=$((failures + 1))
+    fi
+    done
+done
+done
+
+if [[ "${failures}" -gt 0 ]]; then
+echo "===> Had ${failures} failure(s)"
+exit 1
+fi
+
+echo "===> Much Success"
+
+
 set -e
 
 export MSYS_NO_PATHCONV=1
@@ -123,6 +149,8 @@ if [ "$CI" != "" ]; then
     args="$args --dns 8.8.8.8 --dns 8.8.4.4 --dns 1.1.1.1 --dns 1.0.0.1"
 fi
 
+docker info
+
 exec docker \
   run \
   --volume "$root_dir:/checkout:ro" \
diff --git a/src/ci/run.sh b/src/ci/run.sh
index 09a0cf3541d8d..f80c5ae48d278 100755
--- a/src/ci/run.sh
+++ b/src/ci/run.sh
@@ -9,6 +9,44 @@
 # option. This file may not be copied, modified, or distributed
 # except according to those terms.
 
+cat /etc/resolv.conf
+echo "----"
+# cat /etc/network/interfaces
+# echo "----"
+git config --list
+echo "----"
+
+for ((i=1; i<=500; i++)); do
+  failures=0
+
+  for try in 0 1 2 3; do
+    for nameserver in 8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1 169.254.169.254; do
+      for h in github.com s3-us-west-1.amazonaws.com; do
+        echo "---> $(date -u): try ${try} ${h} via ${nameserver}:"
+        if ! dig +short "@${nameserver}" "${h}"; then
+          echo "    x Failed to lookup "${h}" via ${nameserver}"
+          failures=$((failures + 1))
+        fi
+        if ! dig -6 +short "@${nameserver}" "${h}"; then
+          echo "    x Failed to lookup "${h}" via ${nameserver}"
+          failures=$((failures + 1))
+        fi
+      done
+    done
+  done
+
+  if [[ "${failures}" -gt 0 ]]; then
+    echo "===> Had ${failures} failure(s)"
+    exit 1
+  fi
+
+  echo "===> Much Success"
+
+  sleep 10
+done
+
+exit 0
+
 set -e
 
 if [ -n "$CI_JOB_NAME" ]; then

From 070041669f1ca3c649a1c318200fa0d09d6b5152 Mon Sep 17 00:00:00 2001
From: kennytm <kennytm@gmail.com>
Date: Thu, 26 Jul 2018 17:24:31 +0800
Subject: [PATCH 2/3] test mac scheduling.

---
 .travis.yml | 107 ++++++++++++++++++++++++++--------------------------
 1 file changed, 53 insertions(+), 54 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 0228fdc994dd7..5d46ee2628eb6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,16 +17,16 @@ matrix:
   include:
     # Images used in testing PR and try-build should be run first.
     - env: IMAGE=x86_64-gnu-llvm-5.0 RUST_BACKTRACE=1
-      if: type = pull_request OR branch = auto
+
 
     - env: IMAGE=dist-x86_64-linux DEPLOY=1
-      if: branch = try OR branch = auto
+
 
     # "alternate" deployments, these are "nightlies" but have LLVM assertions
     # turned on, they're deployed to a different location primarily for
     # additional testing.
     - env: IMAGE=dist-x86_64-linux DEPLOY_ALT=1 CI_JOB_NAME=dist-x86_64-linux-alt
-      if: branch = try OR branch = auto
+
 
     - env: >
         RUST_CHECK_TARGET=dist
@@ -40,7 +40,7 @@ matrix:
         CI_JOB_NAME=dist-x86_64-apple-alt
       os: osx
       osx_image: xcode9.3-moar
-      if: branch = auto
+
 
     # macOS builders. These are placed near the beginning because they are very
     # slow to run.
@@ -61,7 +61,7 @@ matrix:
         CI_JOB_NAME=x86_64-apple
       os: osx
       osx_image: xcode9.3-moar
-      if: branch = auto
+
 
     - env: >
         RUST_CHECK_TARGET=check
@@ -75,7 +75,7 @@ matrix:
         CI_JOB_NAME=i686-apple
       os: osx
       osx_image: xcode9.3-moar
-      if: branch = auto
+
 
     # OSX builders producing releases. These do not run the full test suite and
     # just produce a bunch of artifacts.
@@ -95,7 +95,7 @@ matrix:
         CI_JOB_NAME=dist-i686-apple
       os: osx
       osx_image: xcode9.3-moar
-      if: branch = auto
+
 
     - env: >
         RUST_CHECK_TARGET=dist
@@ -109,89 +109,89 @@ matrix:
         CI_JOB_NAME=dist-x86_64-apple
       os: osx
       osx_image: xcode9.3-moar
-      if: branch = auto
+
 
     # Linux builders, remaining docker images
     - env: IMAGE=arm-android
-      if: branch = auto
+
     - env: IMAGE=armhf-gnu
-      if: branch = auto
+
     - env: IMAGE=dist-various-1 DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-various-2 DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-aarch64-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-android DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-arm-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-armhf-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-armv7-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-i586-gnu-i586-i686-musl DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-i686-freebsd DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-i686-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-mips-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-mips64-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-mips64el-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-mipsel-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-powerpc-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-powerpc64-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-powerpc64le-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-s390x-linux DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-x86_64-freebsd DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-x86_64-musl DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=dist-x86_64-netbsd DEPLOY=1
-      if: branch = auto
+
     - env: IMAGE=asmjs
-      if: branch = auto
+
     - env: IMAGE=i686-gnu
-      if: branch = auto
+
     - env: IMAGE=i686-gnu-nopt
-      if: branch = auto
+
     - env: IMAGE=wasm32-unknown
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu-full-bootstrap
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu-aux
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu-tools
-      if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri)\b)/)
+
     - env: IMAGE=x86_64-gnu-debug
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu-nopt
-      if: branch = auto
+
     - env: IMAGE=x86_64-gnu-distcheck
-      if: branch = auto
+
     - env: IMAGE=mingw-check
-      if: type = pull_request OR branch = auto
-
-    - stage: publish toolstate
-      if: branch = master AND type = push
-      before_install: []
-      install: []
-      sudo: false
-      script:
-        MESSAGE_FILE=$(mktemp -t msg.XXXXXX);
-        . src/ci/docker/x86_64-gnu-tools/repo.sh;
-        commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";
+
+
+    # - stage: publish toolstate
+
+    #   before_install: []
+    #   install: []
+    #   sudo: false
+    #   script:
+    #     MESSAGE_FILE=$(mktemp -t msg.XXXXXX);
+    #     . src/ci/docker/x86_64-gnu-tools/repo.sh;
+    #     commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";
 
 env:
   global:
@@ -262,7 +262,6 @@ before_script:
 script:
   - >
       date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
-  - stamp sh -x -c "$RUN_SCRIPT"
   - >
       date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
 

From f5be335fcbdc037821683c05a1e814d2209ad3ec Mon Sep 17 00:00:00 2001
From: kennytm <kennytm@gmail.com>
Date: Thu, 26 Jul 2018 17:48:38 +0800
Subject: [PATCH 3/3] Add a single `if` condition and see.

[skip ci]
---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 5d46ee2628eb6..5371ac8441911 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -181,7 +181,7 @@ matrix:
     - env: IMAGE=x86_64-gnu-distcheck
 
     - env: IMAGE=mingw-check
-
+      if: type = pull_request
 
     # - stage: publish toolstate