d3f7910e68
* 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.
83 lines
2.7 KiB
Bash
Executable File
83 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
TRAVIS_BRANCH="${TRAVIS_BRANCH:master}"
|
|
TRAVIS_PULL_REQUEST="${TRAVIS_PULL_REQUEST:false}"
|
|
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
|
TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
|
|
|
set -o errexit -o nounset
|
|
|
|
rev=$(git rev-parse --short HEAD)
|
|
echo "Using git hash ${rev}"
|
|
|
|
if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then
|
|
|
|
git config --global user.name "QMK Bot"
|
|
git config --global user.email "hello@qmk.fm"
|
|
|
|
openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d
|
|
tar xvf secrets.tar
|
|
|
|
chmod 600 id_rsa_qmk_firmware
|
|
chmod 600 id_rsa_qmk.fm
|
|
eval `ssh-agent -s`
|
|
ssh-add id_rsa_qmk_firmware
|
|
|
|
# convert to unix line-endings
|
|
git checkout master
|
|
git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
|
|
git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
|
|
git commit -m "convert to unix line-endings [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master
|
|
|
|
increment_version ()
|
|
{
|
|
declare -a part=( ${1//\./ } )
|
|
part[2]=$((part[2] + 1))
|
|
new="${part[*]}"
|
|
echo -e "${new// /.}"
|
|
}
|
|
|
|
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
|
|
|
NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | grep -Ev '^(layouts/)' | wc -l)
|
|
if [[ $NEFM -gt 0 ]] ; then
|
|
echo "Essential files modified."
|
|
git fetch --tags
|
|
#lasttag=$(git describe --tags $(git rev-list --tags --max-count=10) | grep -Ev '\-' | xargs -I@ git log --format=format:"%ai @%n" -1 @ | sort -V | awk '{print $4}' | tail -1)
|
|
lasttag=$(git describe --tags $(git rev-list --tags --max-count=10) | grep -Ev '\-' | sort -V | tail -1)
|
|
newtag=$(increment_version $lasttag)
|
|
until git tag $newtag; do
|
|
newtag=$(increment_version $newtag)
|
|
done
|
|
git push --tags git@github.com:qmk/qmk_firmware.git
|
|
else
|
|
echo "No essential files modified."
|
|
fi
|
|
|
|
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
|
make generate-keyboards-file SILENT=true > .keyboards
|
|
cd ..
|
|
git clone git@github.com:qmk/qmk.fm.git
|
|
cd qmk.fm
|
|
mv ../qmk_firmware/id_rsa_qmk.fm id_rsa_qmk.fm
|
|
mv ../qmk_firmware/.keyboards .
|
|
ssh-add -D
|
|
eval `ssh-agent -s`
|
|
ssh-add id_rsa_qmk.fm
|
|
|
|
# don't delete files in case not all keyboards are built
|
|
# rm -f compiled/*.hex
|
|
|
|
# ignore errors here
|
|
# In theory, this is more flexible, and will allow for additional expansion of additional types of files and other names
|
|
mv -t compiled ../qmk_firmware/*_default.*(hex|bin) || true
|
|
|
|
bash _util/generate_keyboard_page.sh
|
|
git add -A
|
|
git commit -m "generated from qmk/qmk_firmware@${rev}"
|
|
git push git@github.com:qmk/qmk.fm.git
|
|
|
|
fi
|
|
|
|
fi
|