travis_fastfail.sh
#!/bin/sh
# This file is a part of Julia. License is MIT: https://julialang.org/license
curlhdr="Accept: application/vnd.travis-ci.2+json"
endpoint="https://api.travis-ci.org/repos/$TRAVIS_REPO_SLUG"
# Fail fast for superseded builds to PR's
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
newestbuildforthisPR=$(curl -H "$curlhdr" $endpoint/builds?event_type=pull_request | \
jq ".builds | map(select(.pull_request_number == $TRAVIS_PULL_REQUEST))[0].number")
if [ $newestbuildforthisPR != null -a $newestbuildforthisPR != \"$TRAVIS_BUILD_NUMBER\" ]; then
echo "There are newer queued builds for this pull request, failing early."
exit 1
fi
else
# And for non-latest push builds in branches other than master or release*
case $TRAVIS_BRANCH in
master | release*)
;;
*)
if [ \"$TRAVIS_BUILD_NUMBER\" != $(curl -H "$curlhdr" \
$endpoint/branches/$TRAVIS_BRANCH | jq ".branch.number") ]; then
echo "There are newer queued builds for this branch, failing early."
exit 1
fi
;;
esac
fi