diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..2e740cfad0ae837823fdf62021aea3a5e726e33f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,51 @@ +language: rust + +matrix: + include: + - env: TARGET=x86_64-unknown-linux-gnu + rust: nightly + + - env: TARGET=thumbv6m-none-eabi + rust: nightly + addons: + apt: + sources: + - debian-sid + packages: + - binutils-arm-none-eabi + + - env: TARGET=thumbv7m-none-eabi + rust: nightly + addons: + apt: + sources: + - debian-sid + packages: + - binutils-arm-none-eabi + +before_install: set -e + +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: + # release tags + - /^v\d+\.\d+\.\d+.*$/ + - auto + - master + - try + +notifications: + email: + on_success: never diff --git a/ci/install.sh b/ci/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..4d5d56a45bb9563ed35d06665575322b4c392172 --- /dev/null +++ b/ci/install.sh @@ -0,0 +1,19 @@ +set -euxo pipefail + +main() { + case $TARGET in + thumb*m-none-eabi) + local vers=0.3.8 + + cargo install --list | grep "xargo v$vers" || \ + ( cd .. && cargo install xargo -f --vers $vers ) + + rustup component list | grep 'rust-src.*installed' || \ + rustup component add rust-src + ;; + *) + ;; + esac +} + +main diff --git a/ci/script.sh b/ci/script.sh new file mode 100644 index 0000000000000000000000000000000000000000..e9ff7e38b9f350574d31a079eeb684e88a3f6d6c --- /dev/null +++ b/ci/script.sh @@ -0,0 +1,12 @@ +set -euxo pipefail + +main() { + case $TARGET in + thumb*m-none-eabi) + xargo check --target $TARGET + ;; + *) + cargo check --target $TARGET + ;; + esac +}