language: rust rust: - stable - beta os: - linux - osx - windows jobs: fast_finish: true exclude: - if: tag IS present rust: beta branches: only: - master - /^\d+\.\d+(\.\d+)?(-\S*)?$/ 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 before_cache: - rm -rf /home/travis/.cargo/git - rm -rf /home/travis/.cargo/registry cache: directories: - /home/travis/.cargo notifications: email: on_success: never before_deploy: - | cargo install --path . --target $TARGET --locked --force if [[ $TRAVIS_OS_NAME == "windows" ]]; then choco install zip; 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" "btm.exe"; zip bottom_x86_64-pc-windows-msvc.zip "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" "btm.exe"; zip bottom_i686-pc-windows-msvc.zip "btm.exe"; python "./deployment/windows/choco/choco_packager.py" "bottom_i686-pc-windows-msvc.zip" "bottom_x86_64-pc-windows-msvc.zip" $TRAVIS_TAG; zip choco.zip "./deployment/windows/choco/bottom.nuspec" "./deployment/windows/choco/tools/"; choco install wixtoolset; cargo install cargo-wix; cargo wix init; cargo wix; cp "./target/wix/bottom*.msi" ./bottom_x86_64_installer.msi python "./deployment/packager.py" "./bottom_x86_64_installer.msi" $TRAVIS_TAG "./deployment/windows/winget/winget.yaml.template", "$TRAVIS_TAG.yaml" "SHA256"; 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_required_files.tar.gz ./src ./Cargo.toml ./Cargo.lock LICENSE README.md; python "./deployment/packager.py" "./bottom_x86_64-unknown-linux-gnu.tar.gz" $TRAVIS_TAG "./deployment/linux/arch/PKGBUILD_BIN.template", "./PKGBUILD_BIN" "SHA512"; python "./deployment/packager.py" "./bottom_required_files.tar.gz" $TRAVIS_TAG "./deployment/linux/arch/PKGBUILD.template", "./PKGBUILD" "SHA512"; tar -czvf arch.tar.gz PKGBUILD_BIN PKGBUILD; 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; python "./deployment/packager.py" "./bottom_x86_64-apple-darwin.tar.gz" $TRAVIS_TAG "./deployment/macos/homebrew/bottom.rb.template", "./bottom.rb" "SHA256"; 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 - arch.tar.gz - bottom.rb - choco.zip - bottom_x86_64_installer.msi - $TRAVIS_TAG.yaml skip_cleanup: true on: tags: true condition: "$TRAVIS_RUST_VERSION = stable" repo: ClementTsang/bottom draft: true