X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=util%2Ftravis_build.sh;h=6d5dbed6843d218c6e1e44febcdb29bdb61280b4;hb=bc2157eea8aa99970a3785439efe5823fc76b0b4;hp=80d843bfc1fb157527814a36020fc10772f27fdb;hpb=a15510b57b39e0a12127b9297bade9b9f42332c7;p=qmk_firmware.git diff --git a/util/travis_build.sh b/util/travis_build.sh old mode 100644 new mode 100755 index 80d843bfc..6d5dbed68 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -1,23 +1,42 @@ #!/bin/bash -TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}" -TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" - -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-keyboards AUTOGEN="true" +source util/travis_utils.sh + +NUM_CORE_CHANGES=$(echo "$QMK_CHANGES" | grep -Ecv -e '^(docs/)' -e '^(keyboards/)' -e '^(layouts/)' -e '^(util/)' -e '^(lib/python/)' -e '^(bin/qmk)' -e '^(requirements.txt)' -e '(.travis.yml)') + +if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip build]"* ]]; then + echo "Skipping due to commit message" + exit 0 +fi + +if [ "$LOCAL_BRANCH" == "master" ] || [ "$NUM_CORE_CHANGES" != "0" ]; then + echo "Making default keymaps for all keyboards" + make all:default + exit $? +fi + +exit_code=0 + +for KB in $(make list-keyboards); do + KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') + if [[ -z "$KEYBOARD_CHANGES" ]]; then + # skip as no changes for this keyboard + continue + fi + + KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) + if [[ $KEYMAP_ONLY -gt 0 ]]; then + echo "Making all keymaps for $KB" + make ${KB}: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 - echo "Making all keymaps for $KB" - make ${KB}-allsp-allkm AUTOGEN=true + CHANGED_KEYMAPS=$(echo "$KEYBOARD_CHANGES" | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_-]+)(?=\/)') + for KM in $CHANGED_KEYMAPS ; do + echo "Making $KM for $KB" + make ${KB}:${KM} : $((exit_code = $exit_code + $?)) done fi - exit $exit_code -fi +done + +exit $exit_code