summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: fce0ebfe541556156eed20cbb4b38e1354a24f5d (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
language: rust
rust:
  - stable
  - beta
os:
  - linux
  - osx
  - windows
jobs:
  allow_failures:
    - rust: nightly
    - env: TARGET=x86_64-pc-windows-gnu # Seems to cause problems.  TODO: Add test for it, but keep allow fail.
  fast_finish: true

before_install:
  - export RUST_BACKTRACE=1
  - |
    if [[ $TRAVIS_OS_NAME == "linux" ]]; then
      export TARGET=x86_64-unknown-linux-gnu;
    elif [[ $TRAVIS_OS_NAME == "windows" ]]; then
      export TARGET=x86_64-pc-windows-msvc;
    elif [[ $TRAVIS_OS_NAME == "osx" ]]; then
      export TARGET=x86_64-apple-darwin;
    fi
before_script:
  - rustup target add $TARGET
  - rustup component add clippy
script:
  - cargo clippy -- -D clippy::all
  - cargo build --verbose --target $TARGET
  - cargo test --verbose --target $TARGET

# Need to cache the whole `.cargo` directory to keep .crates.toml for cargo-update to work
cache:
  directories:
    - /home/travis/.cargo

# But don't cache the cargo registry.
before_cache:
  - rm -rf /home/travis/.cargo/git
  - rm -rf /home/travis/.cargo/registry

notifications:
  email:
    on_success: never

before_deploy:
  - |
    if [[ $TRAVIS_OS_NAME == "windows" ]]; then
      rustup target add x86_64-pc-windows-msvc;
      cargo build --release --target x86_64-pc-windows-msvc;
      strip ./target/x86_64-pc-windows-msvc/release/btm;
      mv ./target/x86_64-pc-windows-msvc/release/btm ./target/x86_64-pc-windows-msvc/release/btm.exe;
      zip -r bottom_x86_64-pc-windows-msvc.zip ./target/x86_64-pc-windows-msvc/release/btm.exe;
      rustup target add i686-pc-windows-msvc;
      cargo build --release --target i686-pc-windows-msvc;
      strip ./target/i686-pc-windows-msvc/release/btm;
      mv ./target/i686-pc-windows-msvc/release/btm ./target/i686-pc-windows-msvc/release/btm.exe;
      zip -r bottom_i686-pc-windows-msvc.zip ./target/i686-pc-windows-msvc/release/btm.exe;
    else
        cargo build --release;
        cp ./target/release/btm btm;
        strip btm;
        if [[ $TRAVIS_OS_NAME == "linux" ]]; then
          tar -czvf bottom_x86_64-unknown-linux-gnu.tar.gz btm;
          tar -czvf bottom_source_code.tar.gz ./src ./Cargo.toml LICENSE tests README.md;
        cargo install cargo-deb;
        cargo deb;
        cp ./target/debian/bottom_*.deb .;
        elif [[ $TRAVIS_OS_NAME == "osx" ]]; then
          tar -czvf bottom_x86_64-apple-darwin.tar.gz btm;
        fi
    fi

deploy:
  provider: releases
  overwrite: true
  api_key:
    secure: ppBn0DnqZ+Rzb84doZQxYdUBQ0rVrZNIiH6ZSFEiCVJd0ttqXfOjK/qXbIf/zabwO0Olqz18jwd9piHjNigWRrHwX9N+YH0DZTM3f4WS2/2acvOP3AjSw6oERjYTwS5yKe/XP1sU11uL6O0oAxYFeiAkn7QOM7flVUE2BmmLAs2lLtQ+9ylmUeBGatrkTfQ0Z2i1o7p5mtI2fKUozpImtHq8TClQEsF4oQS5nvkHtpLuPQ0UrJ8vKZijDBeMuLbDkR121ujRnjoBt8+eXBRbwzAvVotwRozyol8noAN3i4VvYueId6oX7Y2DSEp26wnCuRXGurUnyya5JE55AKoevK+SUHRe5+29/2lPbC5d/etZt2tSX1AIJk9fHeIfRPSTzanIIyDpUzSGoMKjl1ARKGrgHYehRxMKpW0cC2xHSlQ+NrA5apLpXKr2IzpkGsxpAxLqRASbX2VJYCEL70WoJfXinZrxeDxXsaWBLGaj9ySyk059GZBMz9GBdYNtwF3G/3aSIt0nkEGgKipgYXHi5keKKGmyfeZyYkRJRbc369JRZiHuOWct+1ZsOdrKKdbyAdcDGj5kbKuYwA6E+wgI62IWvUTm+vtKDuIbLpu/48aOUuEslGHkYAszLTapX/Le9c9XTu3L+PMgkPq2LSyaeGrfnM+DE/Hwe3Jvurccp94=
  file_glob: true
  file:
    - bottom_*.tar.gz
    - bottom_*.zip
    - bottom_*.deb
  skip_cleanup: true
  on:
    tags: true
    condition: "$TRAVIS_RUST_VERSION = stable"
    repo: ClementTsang/bottom
  draft: true