File: travis.sh

package info (click to toggle)
node-rx 4.1.0%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 8,988 kB
  • sloc: javascript: 57,049; sh: 45; makefile: 8
file content (59 lines) | stat: -rw-r--r-- 2,082 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
repo="https://${GH_TOKEN}@github.com/$TRAVIS_REPO_SLUG.git"

# If this is a pull request, we dont want to continue
if [ "$TRAVIS_PULL_REQUEST" != "false" ] ; then
  echo "Nothing to do on a pull request"
  exit 0
fi

# All Pull requests are to the branch called incoming-pr
# If this is not that branch, the rest of the script is irrelevant
if [ "$TRAVIS_BRANCH" != "incoming-pr" ] ; then
  echo "Nothing to do on the master branch"
  exit 0
fi

git fetch
git branch --all
# This part of the script is run before installing deps or tests
if [ "$1" = "before" ] ; then
	# So this is incoming-pr branch. Need to check if this is exactly same as the master
	# If it is, this branch does not have anything new, so no need to try and build it
	incoming_commit=$(git rev-parse HEAD)
	git checkout --orphan master
	git pull origin master --depth=1
	master_commit=$(git rev-parse HEAD)
	if [ "$incoming_commit" = "$master_commit" ] ; then
		echo "Not required to build this as this is same as the master branch"
		exit 1
	else
		git checkout incoming-pr
		echo "Current branch is - $(git rev-parse HEAD)"
		exit 0
	fi
fi

git checkout incoming-pr
if [ "$1" = "merge" ] ; then
	# If the build was successful, travis after-success will send merge
	echo "Merging incoming-pr to master"
	git checkout master
	git merge incoming-pr --log
	git push $repo master -q 2> /dev/null
else
	# If build failed, travis after-failure will send ./travis.sh revert
	echo "Reverting dev branch to what master was"
	# Save the current changes to a new branch
	echo "Creating a new branch for failed build - incoming-pr-fail-$TRAVIS_BUILD_ID"
	git checkout -b incoming-pr-fail-$TRAVIS_BUILD_ID
	git push $repo incoming-pr-fail-$TRAVIS_BUILD_ID -q 2> /dev/null
	git checkout master
fi

echo "Making incoming-pr same as master"
# Merge or revert is done, so make incoming-pr branch at par with master
# This is done to make it ready for accepting the next pull request
git push $repo --delete incoming-pr -q 2> /dev/null
git branch -D incoming-pr
git branch incoming-pr
git push $repo incoming-pr -q 2> /dev/null