travis_build.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. source util/travis_utils.sh
  3. 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)')
  4. if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip build]"* ]]; then
  5. echo "Skipping due to commit message"
  6. exit 0
  7. fi
  8. if [ "$LOCAL_BRANCH" == "master" ] || [ "$NUM_CORE_CHANGES" != "0" ]; then
  9. echo "Making default keymaps for all keyboards"
  10. make all:default
  11. exit $?
  12. fi
  13. exit_code=0
  14. for KB in $(make list-keyboards); do
  15. KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
  16. if [[ -z "$KEYBOARD_CHANGES" ]]; then
  17. # skip as no changes for this keyboard
  18. continue
  19. fi
  20. KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
  21. if [[ $KEYMAP_ONLY -gt 0 ]]; then
  22. echo "Making all keymaps for $KB"
  23. make ${KB}:all
  24. : $((exit_code = $exit_code + $?))
  25. else
  26. CHANGED_KEYMAPS=$(echo "$KEYBOARD_CHANGES" | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_-]+)(?=\/)')
  27. for KM in $CHANGED_KEYMAPS ; do
  28. echo "Making $KM for $KB"
  29. make ${KB}:${KM}
  30. : $((exit_code = $exit_code + $?))
  31. done
  32. fi
  33. done
  34. exit $exit_code