3 # if docker is installed - call make within the qmk docker image
4 if command -v docker
>/dev
/null
; then
6 docker run
--rm -e MAKEFLAGS
="$MAKEFLAGS" -w /qmk_firmware
/ -v "$PWD":/qmk_firmware
--user $
(id
-u):$
(id
-g) qmkfm
/base_container
make "$@"
11 #TRAVIS_COMMIT_RANGE="c287f1bfc5c8...81f62atc4c1d"
13 TRAVIS_COMMIT_MESSAGE
="${TRAVIS_COMMIT_MESSAGE:-none}"
14 TRAVIS_COMMIT_RANGE
="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
15 MAKE_ALL
="make all:default"
17 if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
19 git
diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
20 if [ $?
-eq 128 ]; then
21 echo "Making default keymaps for all keyboards"
23 : $
((exit_code
= $exit_code + $?
))
25 NEFM
=$
(git
diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} |
grep -Ev '^(keyboards/)' |
grep -Ev '^(docs/)' |
wc -l)
26 BRANCH
=$
(git rev-parse
--abbrev-ref HEAD
)
27 # is this branch master or a "non docs, non keyboards" change
28 if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then
29 echo "Making default keymaps for all keyboards"
31 : $
((exit_code
= $exit_code + $?
))
33 # keyboards project format
34 # /keyboards/board1/rev/keymaps/
35 # /keyboards/board2/keymaps/
36 # ensure we strip everything off after and including the keymaps folder to get board and/or revision
37 MKB
=$
(git
diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} |
grep -oP '(?<=keyboards\/)([a-zA-Z0-9_\/]+)(?=\/)' |
sed 's^/keymaps/.*^^' |
sort -u)
39 KEYMAP_ONLY
=$
(git
diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} |
grep -Ev '^(keyboards/'${KB}'/keymaps/)' |
wc -l)
40 if [[ $KEYMAP_ONLY -gt 0 ]]; then
41 echo "Making all keymaps for $KB"
43 : $
((exit_code
= $exit_code + $?
))
45 MKM
=$
(git
diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} |
grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' |
sort -u)
47 echo "Making $KM for $KB"
49 : $
((exit_code
= $exit_code + $?
))