.travis.yml 7.8 KB
Newer Older
1
language: minimal
A
Alex Crichton 已提交
2
sudo: required
3
dist: trusty
S
Seo Sanghyeon 已提交
4 5
services:
  - docker
6

A
Alex Crichton 已提交
7
git:
8
  depth: 1
9
  submodules: false
10

11
matrix:
A
Alex Crichton 已提交
12
  fast_finish: true
13 14
  include:
    # Linux builders, all docker images
15
    - env: IMAGE=arm-android
16
    - env: IMAGE=armhf-gnu
17
    - env: IMAGE=cross DEPLOY=1
18
    - env: IMAGE=dist-android DEPLOY=1
19 20 21
    - env: IMAGE=dist-arm-linux DEPLOY=1
    - env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
    - env: IMAGE=dist-freebsd DEPLOY=1
22
    - env: IMAGE=dist-i586-gnu-i686-musl DEPLOY=1
P
Petr Hosek 已提交
23
    - env: IMAGE=dist-fuchsia DEPLOY=1
24 25 26 27 28
    - env: IMAGE=dist-mips-linux DEPLOY=1
    - env: IMAGE=dist-mips64-linux DEPLOY=1
    - env: IMAGE=dist-powerpc-linux DEPLOY=1
    - env: IMAGE=dist-powerpc64-linux DEPLOY=1
    - env: IMAGE=dist-s390x-linux-netbsd DEPLOY=1
29
    - env: IMAGE=dist-x86-linux DEPLOY=1
30
    - env: IMAGE=dist-x86_64-musl DEPLOY=1
A
Alex Crichton 已提交
31
    - env: IMAGE=emscripten
32
    - env: IMAGE=i686-gnu
33
    - env: IMAGE=i686-gnu-nopt
34
    - env: IMAGE=x86_64-gnu
35
    - env: IMAGE=x86_64-gnu-full-bootstrap
36
    - env: IMAGE=x86_64-gnu-aux
37 38
    - env: IMAGE=x86_64-gnu-debug
    - env: IMAGE=x86_64-gnu-nopt
39
    - env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1
A
Alex Crichton 已提交
40
    - env: IMAGE=x86_64-gnu-distcheck
41
    - env: IMAGE=x86_64-gnu-incremental
42

43 44 45 46
    # OSX builders running tests, these run the full test suite.
    #
    # Note that the compiler is compiled to target 10.8 here because the Xcode
    # version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
47 48
    - env: >
        RUST_CHECK_TARGET=check
49
        RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
50
        SRC=.
51
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
52
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
53 54
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
55
      os: osx
56
      osx_image: xcode8.2
A
Alex Crichton 已提交
57
      install: &osx_install_sccache >
A
Alex Crichton 已提交
58
        travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-24-sccache-x86_64-apple-darwin &&
59 60 61
          chmod +x /usr/local/bin/sccache &&
        travis_retry curl -o /usr/local/bin/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-apple-darwin &&
          chmod +x /usr/local/bin/stamp
62 63 64 65
    - env: >
        RUST_CHECK_TARGET=check
        RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
        SRC=.
66
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
67
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
68 69
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
70 71 72
      os: osx
      osx_image: xcode8.2
      install: *osx_install_sccache
73

74 75 76 77 78 79
    # OSX builders producing releases. These do not run the full test suite and
    # just produce a bunch of artifacts.
    #
    # Note that these are running in the `xcode7` image instead of the
    # `xcode8.2` image as above. That's because we want to build releases for
    # OSX 10.7 and `xcode7` is the latest Xcode able to compile LLVM for 10.7.
80
    - env: >
81
        RUST_CHECK_TARGET=dist
82
        RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
83
        SRC=.
84
        DEPLOY=1
85
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
86
        SCCACHE_ERROR_LOG=/tmp/sccache.log
87
        MACOSX_DEPLOYMENT_TARGET=10.7
88
      os: osx
89
      osx_image: xcode7
A
Alex Crichton 已提交
90
      install: *osx_install_sccache
91
    - env: >
92
        RUST_CHECK_TARGET=dist
93
        RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended"
94
        SRC=.
95
        DEPLOY=1
96
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
97
        SCCACHE_ERROR_LOG=/tmp/sccache.log
98
        MACOSX_DEPLOYMENT_TARGET=10.7
99
      os: osx
100
      osx_image: xcode7
A
Alex Crichton 已提交
101 102
      install: *osx_install_sccache

103 104 105 106 107 108 109 110 111 112
    # "alternate" deployments, these are "nightlies" but don't have assertions
    # turned on, they're deployed to a different location primarily for projects
    # which are stuck on nightly and don't want llvm assertions in the artifacts
    # that they use.
    - env: IMAGE=dist-x86-linux DEPLOY_ALT=1
    - env: >
        RUST_CHECK_TARGET=dist
        RUST_CONFIGURE_ARGS="--enable-extended"
        SRC=.
        DEPLOY_ALT=1
113
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
114
        SCCACHE_ERROR_LOG=/tmp/sccache.log
115
        MACOSX_DEPLOYMENT_TARGET=10.7
116
      os: osx
117
      osx_image: xcode7
118 119
      install: *osx_install_sccache

A
Alex Crichton 已提交
120 121 122 123 124 125
env:
  global:
    - SCCACHE_BUCKET=rust-lang-ci-sccache
    - AWS_ACCESS_KEY_ID=AKIAIMX7VLAS3PZAVLUQ
    # AWS_SECRET_ACCESS_KEY=...
    - secure: "Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
A
arcnmx 已提交
126

127 128
# Note that this is overridden on OSX builders
install: >
A
Alex Crichton 已提交
129 130 131
  travis_retry curl -o $HOME/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-unknown-linux-musl &&
    chmod +x $HOME/stamp &&
    export PATH=$PATH:$HOME
132

133 134 135 136 137 138
before_script:
  - >
      echo "#### Disk usage before running script:";
      df -h;
      du . | sort -nr | head -n100

A
Alex Crichton 已提交
139
script:
140 141 142 143
  - >
      if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
          echo skipping, not a full build;
      elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
144 145
          travis_retry stamp sh -c 'git submodule deinit -f . && git submodule update --init' &&
          stamp src/ci/run.sh;
146
      else
147 148
          travis_retry stamp sh -c 'git submodule deinit -f . && git submodule update --init' &&
          stamp src/ci/docker/run.sh $IMAGE;
149
      fi
150

151 152 153 154 155 156 157 158 159 160 161
after_success:
  - >
      echo "#### Build successful; Disk usage after running script:";
      df -h;
      du . | sort -nr | head -n100

after_failure:
  - >
      echo "#### Build failed; Disk usage after running script:";
      df -h;
      du . | sort -nr | head -n100
162 163 164 165

  # One of these is the linux sccache log, one is the OSX sccache log. Instead
  # of worrying about what system we are just cat both. One of these commands
  # will fail but that's ok, they'll both get executed.
166
  - cat obj/tmp/sccache.log
167
  - cat /tmp/sccache.log
168

169 170 171 172
  # Random attempt at debugging currently. Just poking around in here to see if
  # anything shows up.
  - ls $HOME/Library/Logs/DiagnosticReports/

173 174 175 176
  # attempt to debug anything killed by the oom killer on linux, just to see if
  # it happened
  - dmesg | grep -i kill

177 178 179 180 181
# Save tagged docker images we created and load them if they're available
before_cache:
  - docker history -q rust-ci |
    grep -v missing |
    xargs docker save |
A
Alex Crichton 已提交
182
    gzip > $HOME/docker/rust-ci.tar.gz
183 184
before_install:
  - zcat $HOME/docker/rust-ci.tar.gz | docker load || true
M
Matthew Astley 已提交
185

186 187 188
notifications:
  email: false

189 190 191
cache:
  directories:
    - $HOME/docker
192 193 194 195 196

before_deploy:
  - mkdir -p deploy/$TRAVIS_COMMIT
  - >
      if [ "$TRAVIS_OS_NAME" == "osx" ]; then
197
          rm -rf build/dist/doc &&
A
Alex Crichton 已提交
198
          cp -r build/dist/* deploy/$TRAVIS_COMMIT;
199
      else
200
          rm -rf obj/build/dist/doc &&
A
Alex Crichton 已提交
201
          cp -r obj/build/dist/* deploy/$TRAVIS_COMMIT;
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
      fi

deploy:
  - provider: s3
    bucket: rust-lang-ci
    skip_cleanup: true
    local_dir: deploy
    upload_dir: rustc-builds
    acl: public_read
    region: us-east-1
    access_key_id: AKIAIPQVNYF2T3DTYIWQ
    secret_access_key:
      secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
    on:
      branch: auto
      condition: $DEPLOY = 1
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233

  # this is the same as the above deployment provider except that it uploads to
  # a slightly different directory and has a different trigger
  - provider: s3
    bucket: rust-lang-ci
    skip_cleanup: true
    local_dir: deploy
    upload_dir: rustc-builds-alt
    acl: public_read
    region: us-east-1
    access_key_id: AKIAIPQVNYF2T3DTYIWQ
    secret_access_key:
      secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
    on:
      branch: auto
      condition: $DEPLOY_ALT = 1