diff --git a/.travis.yml b/.travis.yml index bab134aef34cb..25809f896b5a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,12 +12,21 @@ matrix: include: # TOOLS - name: "Semver" - env: TARGET=x86_64-unknown-linux-gnu install: | travis_retry cargo +nightly install \ --git https://github.com/gnzlbg/rust-semverver \ --branch fix_exit_code - script: cargo +nightly semver --api-guidelines --target="${TARGET}" + script: sh ci/semver.sh + stage: semver-test + - name: "Semver" + install: | + travis_retry cargo +nightly install \ + --git https://github.com/gnzlbg/rust-semverver \ + --branch fix_exit_code + script: sh ci/semver.sh + stage: semver-test + os: osx + osx_image: xcode10 - name: "Documentation" env: TARGET=x86_64-unknown-linux-gnu script: sh ci/dox.sh diff --git a/ci/semver.sh b/ci/semver.sh new file mode 100644 index 0000000000000..ac6be36f3f18e --- /dev/null +++ b/ci/semver.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env sh + +# Checks that libc does not contain breaking changes for the following targets. + +set -ex + +OS=${TRAVIS_OS_NAME} + +echo "Testing Semver on ${OS}" + +TARGETS= +case "${OS}" in + *linux*) + TARGETS="\ +aarch64-fuchsia \ +aarch64-linux-android \ +aarch64-unknown-linux-gnu \ +aarch64-unknown-linux-musl \ +armv7-linux-androideabi \ +armv7-unknown-linux-gnueabihf \ +i586-unknown-linux-gnu \ +i586-unknown-linux-musl \ +i686-linux-android \ +i686-unknown-freebsd \ +i686-unknown-linux-gnu \ +i686-unknown-linux-musl \ +i686-pc-windows-gnu \ +x86_64-unknown-freebsd \ +x86_64-unknown-linux-gnu \ +x86_64-unknown-linux-musl \ +x86_64-unknown-netbsd \ +x86_64-unknown-cloudabi \ +x86_64-sun-solaris \ +x86_64-fuchsia \ +x86_64-pc-windows-gnu \ +x86_64-unknown-linux-gnux32 \ +x86_64-unknown-redox \ +x86_64-fortanix-unknown-sgx \ +wasm32-unknown-unknown \ +" + ;; + *osx*) + TARGETS="\ +aarch64-apple-ios \ +armv7-apple-ios \ +armv7s-apple-ios \ +i386-apple-ios \ +i686-apple-darwin \ +x86_64-apple-darwin \ +x86_64-apple-ios \ +" + ;; +esac + +for TARGET in $TARGETS; do + # FIXME: rustup often fails to download some artifacts due to network + # issues, so we retry this N times. + N=5 + n=0 + until [ $n -ge $N ] + do + if rustup target add "${TARGET}" ; then + break + fi + n=$((n+1)) + sleep 1 + done + + cargo +nightly semver --api-guidelines --target="${TARGET}" +done