2017-02-07 07:35:10 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2019-01-17 18:08:23 +01:00
|
|
|
# if docker is installed - call make within the qmk docker image
|
|
|
|
if command -v docker >/dev/null; then
|
|
|
|
function make() {
|
2019-05-31 21:32:34 +02:00
|
|
|
docker run --rm -e MAKEFLAGS="$MAKEFLAGS" -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/qmk_firmware make "$@"
|
2019-01-17 18:08:23 +01:00
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2017-11-21 05:25:38 +01:00
|
|
|
# test force push
|
|
|
|
#TRAVIS_COMMIT_RANGE="c287f1bfc5c8...81f62atc4c1d"
|
|
|
|
|
2017-02-07 07:35:10 +01:00
|
|
|
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
|
|
|
TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen
And push them to qmk.fm/compiled
* Make autogen copy extension agnostic
This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards
* Handle the AUTOGEN in :bin target to properly handle edge cases
Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated.
* Revert hex target to original copy command
* Check hex and bin separately in compile push script
Since I don't know how to script this, well
* Simplify push to compiled folder
* Further simplify compiled push script
* Move AUTOGEN parsing to a more sane location to prevent tech debt
Thanks to skully!
* Remove AUTOGEN completely, as it's not needed
This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-13 01:46:04 +01:00
|
|
|
MAKE_ALL="make all:default"
|
2017-02-07 07:35:10 +01:00
|
|
|
|
Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen
And push them to qmk.fm/compiled
* Make autogen copy extension agnostic
This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards
* Handle the AUTOGEN in :bin target to properly handle edge cases
Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated.
* Revert hex target to original copy command
* Check hex and bin separately in compile push script
Since I don't know how to script this, well
* Simplify push to compiled folder
* Further simplify compiled push script
* Move AUTOGEN parsing to a more sane location to prevent tech debt
Thanks to skully!
* Remove AUTOGEN completely, as it's not needed
This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-13 01:46:04 +01:00
|
|
|
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
2017-02-07 18:36:25 +01:00
|
|
|
exit_code=0
|
2017-11-21 05:25:38 +01:00
|
|
|
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
|
|
|
if [ $? -eq 128 ]; then
|
|
|
|
echo "Making default keymaps for all keyboards"
|
|
|
|
eval $MAKE_ALL
|
2017-02-07 18:36:25 +01:00
|
|
|
: $((exit_code = $exit_code + $?))
|
2017-02-07 07:35:10 +01:00
|
|
|
else
|
2017-11-21 05:25:38 +01:00
|
|
|
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)
|
2019-02-17 20:14:58 +01:00
|
|
|
# is this branch master or a "non docs, non keyboards" change
|
2017-11-21 05:25:38 +01:00
|
|
|
if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then
|
|
|
|
echo "Making default keymaps for all keyboards"
|
|
|
|
eval $MAKE_ALL
|
|
|
|
: $((exit_code = $exit_code + $?))
|
|
|
|
else
|
2019-02-17 20:14:58 +01:00
|
|
|
# keyboards project format
|
|
|
|
# /keyboards/board1/rev/keymaps/
|
|
|
|
# /keyboards/board2/keymaps/
|
|
|
|
# ensure we strip everything off after and including the keymaps folder to get board and/or revision
|
|
|
|
MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_\/]+)(?=\/)' | sed 's^/keymaps/.*^^' | sort -u)
|
2017-11-21 05:25:38 +01:00
|
|
|
for KB in $MKB ; do
|
|
|
|
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"
|
Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen
And push them to qmk.fm/compiled
* Make autogen copy extension agnostic
This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards
* Handle the AUTOGEN in :bin target to properly handle edge cases
Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated.
* Revert hex target to original copy command
* Check hex and bin separately in compile push script
Since I don't know how to script this, well
* Simplify push to compiled folder
* Further simplify compiled push script
* Move AUTOGEN parsing to a more sane location to prevent tech debt
Thanks to skully!
* Remove AUTOGEN completely, as it's not needed
This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-13 01:46:04 +01:00
|
|
|
make ${KB}:all
|
2017-06-18 17:30:59 +02:00
|
|
|
: $((exit_code = $exit_code + $?))
|
2017-11-21 05:25:38 +01:00
|
|
|
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
|
Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen
And push them to qmk.fm/compiled
* Make autogen copy extension agnostic
This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards
* Handle the AUTOGEN in :bin target to properly handle edge cases
Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated.
* Revert hex target to original copy command
* Check hex and bin separately in compile push script
Since I don't know how to script this, well
* Simplify push to compiled folder
* Further simplify compiled push script
* Move AUTOGEN parsing to a more sane location to prevent tech debt
Thanks to skully!
* Remove AUTOGEN completely, as it's not needed
This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-13 01:46:04 +01:00
|
|
|
echo "Making $KM for $KB"
|
|
|
|
make ${KB}:${KM}
|
2017-11-21 05:25:38 +01:00
|
|
|
: $((exit_code = $exit_code + $?))
|
Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen
And push them to qmk.fm/compiled
* Make autogen copy extension agnostic
This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards
* Handle the AUTOGEN in :bin target to properly handle edge cases
Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated.
* Revert hex target to original copy command
* Check hex and bin separately in compile push script
Since I don't know how to script this, well
* Simplify push to compiled folder
* Further simplify compiled push script
* Move AUTOGEN parsing to a more sane location to prevent tech debt
Thanks to skully!
* Remove AUTOGEN completely, as it's not needed
This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-13 01:46:04 +01:00
|
|
|
done
|
2017-11-21 05:25:38 +01:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
2017-02-07 07:35:10 +01:00
|
|
|
fi
|
2017-02-07 18:36:25 +01:00
|
|
|
exit $exit_code
|
2017-02-07 07:35:10 +01:00
|
|
|
fi
|