.travis.yml 7.4 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

    # OSX builders
    - env: >
        RUST_CHECK_TARGET=check
46
        RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
47
        SRC=.
48
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
49
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
50 51
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
52
      os: osx
53
      osx_image: xcode8.2
A
Alex Crichton 已提交
54
      install: &osx_install_sccache >
A
Alex Crichton 已提交
55
        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 &&
56 57 58
          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
59 60 61 62
    - env: >
        RUST_CHECK_TARGET=check
        RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
        SRC=.
63
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
64
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
65 66
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
67 68 69
      os: osx
      osx_image: xcode8.2
      install: *osx_install_sccache
70

71
    - env: >
72
        RUST_CHECK_TARGET=dist
73
        RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
74
        SRC=.
75
        DEPLOY=1
76
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
77
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
78 79
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
80
      os: osx
81
      osx_image: xcode8.2
A
Alex Crichton 已提交
82
      install: *osx_install_sccache
83
    - env: >
84
        RUST_CHECK_TARGET=dist
85
        RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended"
86
        SRC=.
87
        DEPLOY=1
88
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
89
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
90 91
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
92
      os: osx
93
      osx_image: xcode8.2
A
Alex Crichton 已提交
94 95
      install: *osx_install_sccache

96 97 98 99 100 101 102 103 104 105
    # "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
106
        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
107
        SCCACHE_ERROR_LOG=/tmp/sccache.log
P
Peter Wagenet 已提交
108 109
        MACOSX_DEPLOYMENT_TARGET=10.8
        MACOSX_STD_DEPLOYMENT_TARGET=10.7
110 111 112 113
      os: osx
      osx_image: xcode8.2
      install: *osx_install_sccache

A
Alex Crichton 已提交
114 115 116 117 118 119
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 已提交
120

121 122
# Note that this is overridden on OSX builders
install: >
A
Alex Crichton 已提交
123 124 125
  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
126

127 128 129 130 131 132
before_script:
  - >
      echo "#### Disk usage before running script:";
      df -h;
      du . | sort -nr | head -n100

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

145 146 147 148 149 150 151 152 153 154 155
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
156 157 158 159

  # 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.
160
  - cat obj/tmp/sccache.log
161
  - cat /tmp/sccache.log
162

163 164 165 166
  # Random attempt at debugging currently. Just poking around in here to see if
  # anything shows up.
  - ls $HOME/Library/Logs/DiagnosticReports/

167 168 169 170
  # attempt to debug anything killed by the oom killer on linux, just to see if
  # it happened
  - dmesg | grep -i kill

171 172 173 174 175
# 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 已提交
176
    gzip > $HOME/docker/rust-ci.tar.gz
177 178
before_install:
  - zcat $HOME/docker/rust-ci.tar.gz | docker load || true
M
Matthew Astley 已提交
179

180 181 182
notifications:
  email: false

183 184 185
cache:
  directories:
    - $HOME/docker
186 187 188 189 190

before_deploy:
  - mkdir -p deploy/$TRAVIS_COMMIT
  - >
      if [ "$TRAVIS_OS_NAME" == "osx" ]; then
191
          rm -rf build/dist/doc &&
A
Alex Crichton 已提交
192
          cp -r build/dist/* deploy/$TRAVIS_COMMIT;
193
      else
194
          rm -rf obj/build/dist/doc &&
A
Alex Crichton 已提交
195
          cp -r obj/build/dist/* deploy/$TRAVIS_COMMIT;
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
      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
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227

  # 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