]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Make only modified keymaps
authorFred Sundvik <fsundvik@gmail.com>
Sun, 18 Jun 2017 15:30:59 +0000 (18:30 +0300)
committerFred Sundvik <fsundvik@gmail.com>
Sun, 18 Jun 2017 15:30:59 +0000 (18:30 +0300)
util/travis_build.sh

index 80d843bfc1fb157527814a36020fc10772f27fdb..3243447ab62079e0d527715cbc8c4f527919ca4e 100644 (file)
@@ -14,9 +14,19 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
        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
-                       echo "Making all keymaps for $KB"
-                       make ${KB}-allsp-allkm AUTOGEN=true
-                       : $((exit_code = $exit_code + $?))
+                       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}-allsp-allkm 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}-allsp-${KM} AUTOGEN=true
+                                       : $((exit_code = $exit_code + $?))
+                               done            
+                       fi
                done
        fi
        exit $exit_code