1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 01:05:27 +03:00
betaflight/.travis.sh
Anders Höglund 657eee6617 Travis optimizations (#1496)
* add travis directorie cache for arm sdk

* Travis. Test if make all in one job would work. And how slow/fast.

* Travis. Check that the old method with a couple specific targets still works.

* Rebased master and build all targets again.

* Make verbosity level 0 even less verbose, was still too much for travis in one mega-jumbo-all-target build.

* Even less output from make in verbosity level 0. Some Makefile symbol name cleanup too.

* arm_sdk_install did not check if allready downloaded and installed. Added checks and deps. Travis caching might work better now...

* Build all 56 targets to test Travis caching perf.

* Build all 56 targets to test Travis caching perf. Again. Now with correct yml arrsy syntax.

* Added installation of ccache and also to Travis cache. Caching the cache.

* Travis. Remove some unused APT libs, to see if this affects caching and build times.

* Travis. YAPT (Yet another perf trial). Remove all apt package install.

* Disaster. Put back installation if build-essential.

* Disaster still. Put back installation if zliblg-dev.

* Disaster, again. Put back installation of libc6 .

* Travis. Minimizing APT installation as it not be cached, issue 5876 on travis-ci github.

* Travis. Added comment on target specification.
2016-11-08 19:41:20 +01:00

73 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
REVISION=$(git rev-parse --short HEAD)
BRANCH=$(git rev-parse --abbrev-ref HEAD)
REVISION=$(git rev-parse --short HEAD)
LAST_COMMIT_DATE=$(git log -1 --date=short --format="%cd")
TARGET_FILE=obj/betaflight_${TARGET}
TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG:=$USER/undefined}
BUILDNAME=${BUILDNAME:=travis}
TRAVIS_BUILD_NUMBER=${TRAVIS_BUILD_NUMBER:=undefined}
MAKEFILE="-f Makefile"
CURL_BASEOPTS=(
"--retry" "10"
"--retry-max-time" "120" )
CURL_PUB_BASEOPTS=(
"--form" "revision=${REVISION}"
"--form" "branch=${BRANCH}"
"--form" "travis_build_number=${TRAVIS_BUILD_NUMBER}"
"--form" "last_commit_date=${LAST_COMMIT_DATE}"
"--form" "github_repo=${TRAVIS_REPO_SLUG}"
"--form" "build_name=${BUILDNAME}" )
# A hacky way of running the unit tests at the same time as the normal builds.
if [ $RUNTESTS ] ; then
cd ./src/test && make test
# A hacky way of building the docs at the same time as the normal builds.
elif [ $PUBLISHDOCS ] ; then
if [ $PUBLISH_URL ] ; then
# Patch Gimli to fix underscores_inside_words
curl -L "${CURL_BASEOPTS[@]}" https://github.com/walle/gimli/archive/v0.5.9.tar.gz | tar zxf -
sed -i 's/).render(/, :no_intra_emphasis => true).render(/' gimli-0.5.9/ext/github_markup.rb
cd gimli-0.5.9/
gem build gimli.gemspec && gem install gimli
cd ../
./build_docs.sh
curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "manual=@docs/Manual.pdf" ${PUBLISH_URL} || true
fi
elif [ $PUBLISHMETA ] ; then
if [ $PUBLISH_URL ] ; then
RECENT_COMMITS=$(git shortlog -n25)
curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "recent_commits=${RECENT_COMMITS}" ${PUBLISH_URL} || true
fi
elif [ $TARGET ] ; then
if [ $PUBLISH_URL ] ; then
make -j2 $MAKEFILE
if [ -f ${TARGET_FILE}.bin ] ; then
TARGET_FILE=${TARGET_FILE}.bin
elif [ -f ${TARGET_FILE}.hex ] ; then
TARGET_FILE=${TARGET_FILE}.hex
else
echo "build artifact (hex or bin) for ${TARGET_FILE} not found, aborting";
exit 1
fi
curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "file=@${TARGET_FILE}" ${PUBLISH_URL} || true
exit 0;
else
make -j2 $MAKEFILE
fi
else
# No target specified, build all with very low verbosity.
make V=0 all
fi