53 lines
1.5 KiB
Bash
Executable File
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
|