summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 1e0c389d2dc99cfeea5a8d42fa2e82720281e4ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
language: rust
sudo: false
cache:
  - apt
  - cargo
addons:
  apt:
    packages:
    # to x-compile miniz-sys from sources
    - gcc-multilib

matrix:
  include:
  # This represents the minimum Rust version supported by Tokio. Updating this
  # should be done in a dedicated PR and cannot be greater than two 0.x
  # releases prior to the current stable.
  - rust: 1.26.0
  - rust: stable
  - rust: beta
  - rust: nightly
  - os: osx
  - env: TARGET=x86_64-unknown-freebsd
  - env: TARGET=i686-unknown-freebsd
  - env: TARGET=i686-unknown-linux-gnu

  # Test the async / await preview. We don't want to block PRs on this failing
  # though.
  - rust: nightly
    env: ALLOW_FAILURES=true
    script: |
      cd tokio-async-await
      cargo check --all
  allow_failures:
    - rust: nightly
      env: ALLOW_FAILURES=true


script:
  - |
    set -e
    if [[ "$TRAVIS_RUST_VERSION" == nightly ]]
    then
        # Make sure the benchmarks compile
        cargo build --benches --all

        export ASAN_OPTIONS="detect_odr_violation=0 detect_leaks=0"
        export TSAN_OPTIONS="suppressions=`pwd`/ci/tsan"
        export RUST_BACKTRACE=1

        # === tokio-timer ====

        # Run address sanitizer
        RUSTFLAGS="-Z sanitizer=address" \
        cargo test -p tokio-timer --test hammer --target x86_64-unknown-linux-gnu

        # Run thread sanitizer
        RUSTFLAGS="-Z sanitizer=thread" \
        cargo test -p tokio-timer --test hammer --target x86_64-unknown-linux-gnu

        # === tokio-threadpool ====

        # Run address sanitizer
        RUSTFLAGS="-Z sanitizer=address" \
        cargo test -p tokio-threadpool --tests --target x86_64-unknown-linux-gnu

        # Run thread sanitizer
        RUSTFLAGS="-Z sanitizer=thread" \
        cargo test -p tokio-threadpool --tests --target x86_64-unknown-linux-gnu
    fi
  - |
    set -e
    if [[ "$TARGET" ]]
    then
        rustup target add $TARGET
        cargo check --all --exclude tokio-tls --target $TARGET
        cargo check --tests --all --exclude tokio-tls --target $TARGET
    else
        cargo test --all --no-fail-fast
        # Disable these tests for now as they are buggy
        #
        # cargo test --features unstable-futures
        # cargo test --manifest-path tokio-threadpool/Cargo.toml --features unstable-futures
        # cargo test --manifest-path tokio-reactor/Cargo.toml --features unstable-futures
    fi

before_deploy:
  - cargo doc --all --no-deps

deploy:
  provider:  pages
  skip_cleanup: true
  github_token: $GH_TOKEN
  target_branch: gh-pages
  local_dir: target/doc
  on:
    branch: master
    repo: tokio-rs/tokio
    rust: stable
    condition: $TRAVIS_OS_NAME = linux

env:
  global:
    - secure: iwlN1zfUCp/5BAAheqIRSFIqiM9zSwfIGcVDw/V7jHveqXyNzmCs7H58/cd90WLqonqpPX0t5GF66oTjms4v0DFjgXr/k4358qeSZaV082V3baNrVpCDHeCQV0SvKsfiYxDDJGSUL1WIUP+tqqDm4+ksZQP3LnwZojkABjWz5CBNt4kX+Wz5ZbYqtQoxyuZba5UyPY2CXJtubvCVPGMJULuUpklYxXZ4dWM2olzGgVJ8rE8udhSZ4ER4JgxB0KUx3/5TwHHzgyPEsWR4bKN6JzBjIczQofXUcUXXdoZBs23H/VhCpzKcn3/oJ8btVYPzwtdj5FmVB1aVR/gjPo2bSGi/sofq+LwL/1HJXkM+kjl8m2dLLcDBKqNYNERtVA1++LhkMWAFRgGYe8v8Ryxjiue1NF5LgAIA/fjK0uI1DELTzTf/TKrM+AtPDNTvhOft4/YD+hoImjwk6nv6PBb2TiTYnc79Qf4AZ65tv1qtsAUPuw4plLaccHQAO4ldYVXn4u9c+iisJwvovs6jo06bF3U3qtdI5gXsrI9+T25TrXvYb+IREo0MHzYEM0KlPFnscEArzC3eajuSd36ARFP3lDc+gp2RPs89iJjowms0eRyepp7Cu6XO3Cd2pfAX8AqvnmttZf4Nm51ONeiBPXPXItUkJm49MCpMJywU1IZcWZg=

notifications:
  email:
    on_success: never