angular-cn/scripts/ci/presubmit-queue-success.sh

53 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -e -o pipefail
# If we're on the presubmit branch, the dev Dart release, and all unit
# tests pass, merge the presubmit branch into master and push it.
CHANNEL=`echo $JOB | cut -f 2 -d -`
SHA=`git rev-parse HEAD`
echo Current channel is: $CHANNEL
echo Current branch is: $TRAVIS_BRANCH
echo Test result is: $TRAVIS_TEST_RESULT
if [ "$TRAVIS_REPO_SLUG" = "angular/angular" ]; then
if [ $TRAVIS_TEST_RESULT -eq 0 ] && [[ $TRAVIS_BRANCH == "presubmit-"* ]]; then
echo '***************'
echo '** PRESUBMIT **'
echo '***************'
echo
echo "Pushing HEAD to master..."
git stash
git fetch upstream master
git rebase upstream/master
if [[ $TRAVIS_BRANCH == *"-pr-"* ]]; then
PR_NO=`echo $TRAVIS_BRANCH | sed -e 's/^.*-pr-//'`
if echo $PR_NO | egrep -q '^[0-9]+$'; then
echo "Adding Closes #$PR_NO"
git filter-branch -f --msg-filter "cat /dev/stdin && echo && echo Closes \#$PR_NO" HEAD~1..HEAD
fi
fi
if git push upstream HEAD:master; then
echo "$TRAVIS_BRANCH has been merged into master, deleting..."
git push upstream :"$TRAVIS_BRANCH"
else
COMITTER_EMAIL=`git --no-pager show -s --format='%cE' HEAD`
echo Sending failure email to ${COMITTER_EMAIL}
mail \
-s "Failed to merge branch $TRAVIS_BRANCH to master" \
${COMMITTER_EMAIL} \
<< EOM
Your travis branch ${TRAVIS_BRANCH} failed!
https://travis-ci.org/angular/angular/builds/${TRAVIS_JOB_ID}
Please take a look.
EOM
fi
fi
fi