From 45c7930318818260a2f0f393c7270631b331346a Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 26 Feb 2019 14:57:34 +0100 Subject: [PATCH] Test semver for all normal targets --- .travis.yml | 23 +++++++++++------ ci/semver.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 ci/semver.sh diff --git a/.travis.yml b/.travis.yml index bab134ae..fae5c7b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,13 +11,6 @@ stages: 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}" - name: "Documentation" env: TARGET=x86_64-unknown-linux-gnu script: sh ci/dox.sh @@ -41,6 +34,22 @@ matrix: # cargo fmt --all -- --check # fi stage: tools-and-build-and-tier1 + - 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: tools-and-build-and-tier1 + - name: "Semver" + install: | + travis_retry cargo +nightly install \ + --git https://github.com/gnzlbg/rust-semverver \ + --branch fix_exit_code + script: sh ci/semver.sh + os: osx + osx_image: xcode10 + stage: tools-and-build-and-tier1 # BUILD stable, beta, nightly - name: "Build Stable Rust" diff --git a/ci/semver.sh b/ci/semver.sh new file mode 100644 index 00000000..ac6be36f --- /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