Test multi arch Travis CI build configuration

This commit is contained in:
timvisee 2018-05-25 18:44:53 +02:00
parent b66aede387
commit f87f3bef09
No known key found for this signature in database
GPG key ID: 109CBA0BF74036C2

View file

@ -16,38 +16,66 @@ jobs:
include:
- stage: build
rust: stable
script: &build-script
- cargo build --verbose --all
- cargo build --no-default-features --verbose --all
- cargo build --features no-color --verbose --all
env: TARGET=x86_64-unknown-linux-gnu
script: &build-script-cross
- cargo install cross
- cross build --target $TARGET --verbose --all
- cross build --target $TARGET --no-default-features --verbose --all
- cross build --target $TARGET --features no-color --verbose --all
cache: cargo
- stage: build
rust: stable
env: TARGET=i686-unknown-linux-gnu
script: *build-script-cross
- stage: build
rust: stable
env: TARGET=aarch64-unknown-linux-gnu
script: *build-script-cross
- stage: build
rust: beta
script: *build-script
env: TARGET=x86_64-unknown-linux-gnu
script: *build-script-cross
- stage: build
rust: nightly
script: *build-script
env: TARGET=x86_64-unknown-linux-gnu
script: *build-script-cross
- stage: build
rust: stable
os: osx
script: *build-script
env: TARGET=x86_64-unknown-linux-gnu
script:
- cargo build --verbose --all
- cargo build --no-default-features --verbose --all
- cargo build --features no-color --verbose --all
- stage: test
env: TARGET=x86_64-unknown-linux-gnu
script: cargo test --verbose --all
cache: cargo
- stage: release
script: skip
env: TARGET=x86_64-unknown-linux-gnu
script:
- cargo install cross
- cross build --target $TARGET --release --verbose --all
- cd target/release
- tar -czvf $TRAVIS_BUILD_DIR/ffsend-linux-x86_64.tar.gz ffsend
- cd $TRAVIS_BUILD_DIR
deploy:
provider: releases
api_key: $GITHUB_OAUTH_TOKEN
skip_cleanup: true
overwrite: false
file: ffsend-x86_64-linux.tar.gz
on:
tags: true
branch: master
cache: cargo
- stage: release
script:
- echo $CARGO_TOKEN | cargo login
- cargo publish --verbose
cache: cargo
# TODO: more architectures
# TODO: release a build for each architecture
# TODO: enfore the git tag/crate version equality for releases
# TODO: disable addons/rust installation for GitHub release job