Merge pull request #9 from ErgoDox-EZ/simplify_travis
Streamline Travis CI scripting
This commit is contained in:
13
.travis.yml
13
.travis.yml
@@ -10,6 +10,7 @@ branches:
|
||||
env:
|
||||
global:
|
||||
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
|
||||
- MAKEFLAGS="-j3 --output-sync"
|
||||
before_install:
|
||||
- wget http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz || wget http://qmk.fm/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
|
||||
install:
|
||||
@@ -21,8 +22,7 @@ before_script:
|
||||
script:
|
||||
- git rev-parse --short HEAD
|
||||
- make test:all
|
||||
- bash util/travis_build.sh
|
||||
- bash util/travis_docs.sh
|
||||
- make all:default
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
@@ -34,12 +34,3 @@ addons:
|
||||
- diffutils
|
||||
- dos2unix
|
||||
- doxygen
|
||||
after_success:
|
||||
bash util/travis_compiled_push.sh
|
||||
notifications:
|
||||
webhooks:
|
||||
urls:
|
||||
- https://webhooks.gitter.im/e/afce403d65f143dfac09
|
||||
on_success: always # options: [always|never|change] default: always
|
||||
on_failure: always # options: [always|never|change] default: always
|
||||
on_start: never # options: [always|never|change] default: always
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# test force push
|
||||
#TRAVIS_COMMIT_RANGE="c287f1bfc5c8...81f62atc4c1d"
|
||||
|
||||
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
||||
TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
||||
MAKE_ALL="make all:default"
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||
exit_code=0
|
||||
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
||||
if [ $? -eq 128 ]; then
|
||||
echo "Making default keymaps for all keyboards"
|
||||
eval $MAKE_ALL
|
||||
: $((exit_code = $exit_code + $?))
|
||||
else
|
||||
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 default keymaps for all keyboards"
|
||||
eval $MAKE_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
|
||||
if [[ $KB == *keymaps* ]]; then
|
||||
continue
|
||||
fi
|
||||
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"
|
||||
make ${KB}:all
|
||||
: $((exit_code = $exit_code + $?))
|
||||
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
|
||||
echo "Making $KM for $KB"
|
||||
make ${KB}:${KM}
|
||||
: $((exit_code = $exit_code + $?))
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
exit $exit_code
|
||||
fi
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
source util/travis_push.sh
|
||||
|
||||
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
|
||||
|
||||
# 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 ../qmk_firmware/*_default.*[hb][ei][xn] ./compiled/ || 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
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
source util/travis_push.sh
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then
|
||||
if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/internals_.*'; then
|
||||
echo "Generating internal docs..."
|
||||
rm -rf doxygen
|
||||
doxygen Doxyfile
|
||||
moxygen -q -a -g -o docs/internals_%s.md doxygen/xml
|
||||
git add docs/internals_*
|
||||
git commit -m'autogenerated internal docs for ${TRAVIS_COMMIT_RANGE}' || true
|
||||
fi
|
||||
fi
|
||||
@@ -1,19 +0,0 @@
|
||||
# Use this by sourcing it in your script.
|
||||
|
||||
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}"
|
||||
|
||||
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
|
||||
fi
|
||||
Reference in New Issue
Block a user