Browse Source

fix build script for force pushes

Jack Humbert 8 years ago
parent
commit
06a3b5784c
1 changed files with 34 additions and 23 deletions
  1. 34 23
      util/travis_build.sh

+ 34 - 23
util/travis_build.sh

@@ -1,36 +1,47 @@
 #!/bin/bash
 
+# test force push
+#TRAVIS_COMMIT_RANGE="c287f1bfc5c8...81f62atc4c1d"
+
 TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
 TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
+MAKE_ALL="make all:default AUTOGEN=\"true\""
 
 if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then 
 	exit_code=0
-	NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)'  | grep -Ev '^(docs/)' | wc -l)
-	BRANCH=$(git rev-parse --abbrev-ref HEAD)
-	if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then
-		echo "Making all keymaps for all keyboards"
-		make all:default AUTOGEN="true"
+	git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
+	if [ $? -eq 128 ]; then
+		echo "Making default keymaps for all keyboards"
+		eval $MAKE_ALL
 		: $((exit_code = $exit_code + $?))
 	else
-		MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_\/]+)(?=\/)' | sort -u)
-		for KB in $MKB ; do
-			if [[ $KB == *keymaps* ]]; then
-				continue
-			fi
-			KEYMAP_ONLY=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/'${KB}'/keymaps/)' | wc -l)
-			if [[ $KEYMAP_ONLY -gt 0 ]]; then
-				echo "Making all keymaps for $KB"
-				make ${KB}:all AUTOGEN=true
-				: $((exit_code = $exit_code + $?))
-			else
-				MKM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
-				for KM in $MKM ; do
-					echo "Making $KM for $KB"	
-					make ${KB}:${KM} AUTOGEN=true
+		NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)'  | grep -Ev '^(docs/)' | wc -l)
+		BRANCH=$(git rev-parse --abbrev-ref HEAD)
+		if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then
+			echo "Making default keymaps for all keyboards"
+			eval $MAKE_ALL
+			: $((exit_code = $exit_code + $?))
+		else
+			MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_\/]+)(?=\/)' | sort -u)
+			for KB in $MKB ; do
+				if [[ $KB == *keymaps* ]]; then
+					continue
+				fi
+				KEYMAP_ONLY=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/'${KB}'/keymaps/)' | wc -l)
+				if [[ $KEYMAP_ONLY -gt 0 ]]; then
+					echo "Making all keymaps for $KB"
+					make ${KB}:all AUTOGEN=true
 					: $((exit_code = $exit_code + $?))
-				done		
-			fi
-		done
+				else
+					MKM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
+					for KM in $MKM ; do
+						echo "Making $KM for $KB"	
+						make ${KB}:${KM} AUTOGEN=true
+						: $((exit_code = $exit_code + $?))
+					done		
+				fi
+			done
+		fi
 	fi
 	exit $exit_code
 fi