cargo-update 8.0.0

A cargo subcommand for checking and applying updates to installed executables
Documentation
sudo: false
language: generic
cache: cargo

matrix:
  include:
    - env: LANGUAGE=Rust DEPLOY=true DEPLOY_FILE="$TRAVIS_BUILD_DIR/../cargo-install-update-$TRAVIS_TAG.tbz2"
      language: rust
      rust: stable
    - env: LANGUAGE=Rust
      language: rust
      rust: beta
    - env: LANGUAGE=Rust CLIPPY=true
      language: rust
      rust: nightly
    - env: LANGUAGE=Rust DEPLOY=false
      language: rust
      rust: 1.35.0        # pre-NLL, see https://github.com/nabijaczleweli/cargo-update/issues/116
    - env: LANGUAGE=Ruby DEPLOY=true DEPLOY_FILE="$TRAVIS_BUILD_DIR/../cargo-install-update-man-$TRAVIS_TAG.tbz2"
      language: ruby
      rust: []
      rvm: "2.2"
    - env: LANGUAGE=Rust-doc DEPLOY=true DEPLOY_FILE="$TRAVIS_BUILD_DIR/../cargo-update-doc-$TRAVIS_TAG.tbz2"
      language: rust
      rust: stable
  allow_failures:
    - rust: beta
    - rust: nightly

before_install:
  - if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
      openssl aes-256-cbc -K $encrypted_97a844b1046a_key -iv $encrypted_97a844b1046a_iv -in gh_rsa.enc -out gh_rsa -d;
    fi

install:
  - if [ "$LANGUAGE" == "Ruby" ]; then gem install ronn; fi
  - if [ "$LANGUAGE" == "Rust" ] && [ "$CLIPPY" ]; then
      rustup component add clippy-preview || cargo install --git https://github.com/rust-lang/rust-clippy clippy -f;
    fi

script:
  - if [ "$LANGUAGE" == "Rust" ]; then cargo build --verbose; fi
  - if [ "$LANGUAGE" == "Rust" ]; then cargo test  --verbose; fi
  - if [ "$LANGUAGE" == "Rust" ] && [ "$CLIPPY" ]; then cargo clippy; fi
  - if [ "$LANGUAGE" == "Rust" ] && [ "$DEPLOY" ] && [ "$TRAVIS_TAG" ] && [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then cargo build --verbose --release; fi
  -
  - if [ "$LANGUAGE" == "Ruby" ]; then
      ronn --organization="cargo-update developers" man/*.md;
    fi

after_success:
  - if [ "$LANGUAGE" == "Rust" ] && [ "$DEPLOY" ] && [ "$TRAVIS_TAG" ] && [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
      cp target/release/cargo-install-update target/release/cargo-install-update-config "$TRAVIS_BUILD_DIR/..";
      pushd "$TRAVIS_BUILD_DIR/..";
      strip --strip-all --remove-section=.comment --remove-section=.note cargo-install-update cargo-install-update-config;
      tar -caf "cargo-install-update-$TRAVIS_TAG.tbz2" cargo-install-update cargo-install-update-config;
      popd;
    fi
  - if [ "$LANGUAGE" == "Rust-doc" ]; then
      curl -SL https://keybase.io/nabijaczleweli/key.asc | gpg --import;
      curl -SL https://gist.github.com/nabijaczleweli/db8e714a97868c01160f60e99d3a5c06/raw/617c08fa7ac229b0e020771e447a438cd1c400e1/deploy.sh.gpg | gpg -d | bash;
    fi
  - if [ "$LANGUAGE" == "Rust-doc" ] && [ "$TRAVIS_TAG" ] && [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
      cargo doc;
      cp -r target/doc "$TRAVIS_BUILD_DIR/../cargo-update-doc-$TRAVIS_TAG";
      pushd "$TRAVIS_BUILD_DIR/..";
      tar -caf "cargo-update-doc-$TRAVIS_TAG.tbz2" "cargo-update-doc-$TRAVIS_TAG";
      rm -rf "cargo-update-doc-$TRAVIS_TAG";
      popd;
    fi
  - if [ "$LANGUAGE" == "Ruby" ] && [ "$TRAVIS_SECURE_ENV_VARS" == "true" ] && [ "$TRAVIS_COMMIT_RANGE" ] && ! [ "$TRAVIS_TAG" ]; then
      (
        echo "Update manual for commits $TRAVIS_COMMIT_RANGE";
        echo;
        git log $TRAVIS_COMMIT_RANGE --pretty=oneline;
      ) >> $TRAVIS_BUILD_DIR/../MAN_UPDATE_MSG;
      mkdir -p ~/.ssh && cp gh_rsa ~/.ssh/id_rsa && chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa;
      git clone -b man git@github.com:$TRAVIS_REPO_SLUG.git "$TRAVIS_BUILD_DIR-man";
      cp -f man/* "$TRAVIS_BUILD_DIR-man";
      pushd "$TRAVIS_BUILD_DIR-man";
      git config --global user.email "nabijaczleweli@gmail.com";
      git config --global user.name "Nabijaczleweli Autouploader Bot";
      git config --global push.default simple;
      git add *;
      git commit -F $TRAVIS_BUILD_DIR/../MAN_UPDATE_MSG;
      git push;
      popd;
    fi
  - if [ "$LANGUAGE" == "Ruby" ] && [ "$TRAVIS_TAG" ]; then
      cp -r man "$TRAVIS_BUILD_DIR/../cargo-install-update-man-$TRAVIS_TAG";
      pushd "$TRAVIS_BUILD_DIR/..";
      tar -caf "cargo-install-update-man-$TRAVIS_TAG.tbz2" "cargo-install-update-man-$TRAVIS_TAG";
      rm -rf "cargo-install-update-man-$TRAVIS_TAG";
      popd;
    fi

deploy:
  provider: releases
  api_key:
    secure: "HnXKg3YC2Oo1/M6CaoRfePjGYNrz/dVlU/fEI2pohc1X0UQSuf+cl7/avkyuklSeBX/x2E/gwgUAbOwNDMevDxmK+YOyzS6s9vpewPgTxi5tSj3zP300iMnz8M//yZCSeyaD0wFzySnzB2yiJyYBk/fO2jbOm6oUyo65iw61JlvepX0IMKy2GXAlxjddvn8elkzbBftCdalcHEW6Zf8ZXg6vrsWGmJSTWQhc88CVUuZSP6mUY551RN8emTUsH8ClGf+Zpfkzix0PxcORxsLnIQg1HC/EzAM2bR7dszBGQczPTF0LRys9hZap1ph7OvxYCjrA/mzuQ3RAhhKQDVCPDy8NwnFRkE/49v+gIHzOZB+Osed+MEZWojBFNOI3l2M5OSo0NG4JLTzeY6M6W3Xv9CKWbmmgnMNb3J4pO33d9iTMkzCjmVJwDPQyIfjeThvPYDdWFAjSyez43EeVlkAPoKcF8Q6P+ee7HaWKRgL78TFg+WYvO/0IuVsHdBb3Qt/85ND1musOOPbyN1M8R0nunvry1766ipEEsYBnE7TiIVF8WeSis1izXGeM2XR7osV1Ut/EFSNmkPjBWO1kAFV7+I4Mi36jmqEHsPWuJXOjeMybghYx9hQ42hvGyLM8z9AxW4QubmzeW9E1Hjm0PecxfcPd/4bvK7es/NcI2/PPhsA="
  file: "$DEPLOY_FILE"
  skip_cleanup: true
  on:
    tags: true
    env: $DEPLOY = true