diff options
author | Diego Barrios Romero <eldruin@gmail.com> | 2018-11-04 21:34:05 +0100 |
---|---|---|
committer | Diego Barrios Romero <eldruin@gmail.com> | 2018-11-04 21:34:05 +0100 |
commit | d863037e60340e9765c13bf707092dd32f958a42 (patch) | |
tree | 6d2c6eb6924067ba2fb215c98f0f37dcada905d9 | |
parent | 5a5d08f92768c48949cb175605055b853e559c5c (diff) | |
download | ads1x1x-async-d863037e60340e9765c13bf707092dd32f958a42.tar.gz ads1x1x-async-d863037e60340e9765c13bf707092dd32f958a42.tar.xz ads1x1x-async-d863037e60340e9765c13bf707092dd32f958a42.zip |
Add CI
-rw-r--r-- | .travis.yml | 56 | ||||
-rw-r--r-- | ci/install.sh | 13 | ||||
-rw-r--r-- | ci/script.sh | 24 |
3 files changed, 93 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..05d94de --- /dev/null +++ b/.travis.yml @@ -0,0 +1,56 @@ +language: rust + +matrix: + include: + - env: TARGET=x86_64-unknown-linux-gnu + + - env: TARGET=x86_64-unknown-linux-gnu + rust: nightly + + - env: TARGET=x86_64-unknown-linux-musl + rust: nightly + + # Raspberry Pi 1 + - env: TARGET=arm-unknown-linux-gnueabi DISABLE_EXAMPLES=1 DISABLE_TESTS=1 + rust: nightly + + # Raspberry Pi 2, 3, etc + - env: TARGET=armv7-unknown-linux-gnueabihf DISABLE_EXAMPLES=1 DISABLE_TESTS=1 + rust: nightly + + # Bare metal + - env: TARGET=thumbv6m-none-eabi + rust: beta + - env: TARGET=thumbv7em-none-eabi + rust: beta + - env: TARGET=thumbv7em-none-eabihf + rust: beta + - env: TARGET=thumbv7m-none-eabi + rust: beta + +before_install: + - set -e + - rustup self update + +install: + - bash ci/install.sh + +script: + - bash ci/script.sh + +after_script: set +e + +cache: cargo +before_cache: + # Travis can't cache files that are not readable by "others" + - chmod -R a+r $HOME/.cargo + +branches: + only: + - master + - staging + - trying + +notifications: + email: + on_success: never diff --git a/ci/install.sh b/ci/install.sh new file mode 100644 index 0000000..42c96b4 --- /dev/null +++ b/ci/install.sh @@ -0,0 +1,13 @@ +set -euxo pipefail + +main() { + rustup component add rust-src + SYSROOT=$(rustc --print sysroot) + if [[ ! "$SYSROOT" =~ "$TARGET" ]]; then + rustup target add $TARGET + else + echo "Target $TARGET is already installed" + fi +} + +main diff --git a/ci/script.sh b/ci/script.sh new file mode 100644 index 0000000..9ad8677 --- /dev/null +++ b/ci/script.sh @@ -0,0 +1,24 @@ +set -exo pipefail + +main() { + if [[ ! $TARGET =~ .*linux.* ]]; then + sed -i "s/linux-embedded-hal/#linux-embedded-hal/g" Cargo.toml + sed -i "s/embedded-hal-mock/#embedded-hal-mock/g" Cargo.toml + fi + + if [ ! -z $FEATURES ]; then + export FEATURES="--features $FEATURES" + fi + + cargo check --target $TARGET $FEATURES + cargo build --target $TARGET --release $FEATURES + if [ -z $DISABLE_EXAMPLES ] && [[ $TARGET =~ .*linux.* ]]; then + cargo build --target $TARGET $FEATURES --examples + fi + + if [ -z $DISABLE_TESTS ] && [ $TRAVIS_RUST_VERSION = nightly ] && [[ $TARGET =~ .*linux.* ]]; then + cargo test --target $TARGET $FEATURES + fi +} + +main |