diff options
author | Pierre GRANDIN <pgrandin@users.noreply.github.com> | 2016-12-30 17:19:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-30 17:19:52 -0800 |
commit | d9c1d9f90d21293a3702c457bdbbe06555980a2d (patch) | |
tree | 4e75a7adb72dc7fe663e0d224bf31921dc68a430 | |
parent | 486f439e9afbf7a28eb0e0cbb664e78920befa91 (diff) | |
download | navit-d9c1d9f90d21293a3702c457bdbbe06555980a2d.tar.gz |
Android ci optimization (#195)R7163
* Reducing differences between x86 and arm android builds
* Fixed apk path in build scripts
* Fixed xml artifacts path in build scripts
* Bumping libpng to 1.6.27
* Removed APK signing webhook
* Ensures that the arch-specific artifact directory exists
* Reduced wget noise
-rw-r--r-- | ci/build_android.sh | 55 | ||||
-rw-r--r-- | ci/build_android_x86.sh | 21 | ||||
-rw-r--r-- | ci/build_tomtom_minimal.sh | 8 | ||||
-rw-r--r-- | ci/build_tomtom_plugin.sh | 26 | ||||
-rw-r--r-- | circle.yml | 3 |
5 files changed, 44 insertions, 69 deletions
diff --git a/ci/build_android.sh b/ci/build_android.sh index 5e9794a07..610dbc6e2 100644 --- a/ci/build_android.sh +++ b/ci/build_android.sh @@ -1,64 +1,37 @@ #!/bin/bash -red='\e[0;31m' -grn='\e[0;32m' -yel='\e[1;33m' -off='\e[0m' +set -e -wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip - -# setup var's to perform environment setup and cmake +export ARCH="arm" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/arm-eabi.cmake" - export ANDROID_NDK=~/android-ndk-r13 export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin" - export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" +export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH +export BUILD_PATH=$START_PATH"/android-${ARCH}" -export ANDROID_TOOLS_CHECK=$ANDROID_SDK"/tools" - -export ANDROID_PLATFORM_TOOLS_CHECK=$ANDROID_SDK"/platform-tools" - -export ANDROID_BUILD_TOOLS="23.0.1" -export ANDROID_BUILD_CHECK=$ANDROID_SDK"/build-tools/"$BUILD_TOOLS - -export ANDROID_PLATFORM_LATEST="android-21" -export ANDROID_PLATFORM_MIN="android-7" -export BUILD_PATH=$START_PATH"/android-build" -export ANDROID_ENV=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS - -# $ANDROID_HOME is /usr/local/android-sdk-linux for the android env. provided by CircleCI - -# If path already has our environment no need to set it -if echo "$ANDROID_ENV" | grep -q "$PATH"; then - echo -e "${grn}" " Android PATH configuration... ALREADY SET" "${off}" - echo -else - echo -e "${grn}" " Android PATH configuration... EXPORTED" "${off}" - export PATH=$ANDROID_ENV:$PATH - echo -fi +wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip +[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH -export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS:$PATH + android list targets -mkdir $CIRCLE_ARTIFACTS/android/ -cp ~/navit/navit/android/CMakeLists.txt $CIRCLE_ARTIFACTS/android/ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 $SOURCE_PATH -make || exit 1 +make + if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-release-unsigned.apk || exit 1 + make apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make apkg && mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug.apk || exit 1 + make apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -cp ~/android-build/navit/*.xml $CIRCLE_ARTIFACTS/android/ +[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ +cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ echo echo "Build leftovers :" -ls navit/android/bin/ +ls $BUILD_PATH diff --git a/ci/build_android_x86.sh b/ci/build_android_x86.sh index 022b7f5af..b42d03d9f 100644 --- a/ci/build_android_x86.sh +++ b/ci/build_android_x86.sh @@ -1,3 +1,7 @@ +#!/bin/bash +set -e + +export arch="x86" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/i686-android.cmake" @@ -6,27 +10,28 @@ export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/x86-4.9/prebuilt/linux-x86_64/bi export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH -export BUILD_PATH=$START_PATH"/android-x86" +export BUILD_PATH=$START_PATH"/android-${ARCH}" wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -unzip -q -d ~ android-ndk-r13-linux-x86_64.zip +[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH android list targets -cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH || exit -1 -make || exit -1 +cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH +make if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-x86-release-unsigned.apk || exit 1 + make apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make apkg && mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-x86-debug.apk || exit 1 + make apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -#cp ~/android-build/navit/*.xml $CIRCLE_ARTIFACTS/android/ +[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ +cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ echo echo "Build leftovers :" -ls navit/android/bin/ +ls $BUILD_PATH diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index 6a8582be1..a931ece4c 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -40,9 +40,9 @@ if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar. wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.26.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" then - wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.26.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets fi # toolchain @@ -71,8 +71,8 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.26.tar.gz -cd libpng-1.6.26/ +tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz +cd libpng-1.6.27/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 3080b39c1..01710a0ab 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -36,12 +36,12 @@ mkdir -p ~/tomtom_assets if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] then - wget -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets + wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.26.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" then - wget -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.26.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets fi # toolchain @@ -52,7 +52,7 @@ tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # espeak cd /tmp # this one includes the precompiled voices -wget -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip +wget -nv -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip unzip espeak-1.48.04-source.zip cd espeak-1.48.04-source sed -i "s/PREFIX=\/usr//g" src/Makefile @@ -177,7 +177,7 @@ arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakd # zlib cd /tmp -wget -c http://zlib.net/zlib-1.2.8.tar.gz +wget -nv -c http://zlib.net/zlib-1.2.8.tar.gz tar xzf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=$PREFIX @@ -186,7 +186,7 @@ make install # libxml cd /tmp/ -wget -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz +wget -nv -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz tar xzf libxml2-2.7.8.tar.gz cd libxml2-2.7.8/ ./configure --prefix=$PREFIX --host=$ARCH --without-python @@ -195,15 +195,15 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.26.tar.gz -cd libpng-1.6.26/ +tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz +cd libpng-1.6.27/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install cd /tmp -wget -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz +wget -nv -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz tar xzf freetype-2.5.0.tar.gz cd freetype-2.5.0 ./configure --prefix=$PREFIX --host=$ARCH @@ -214,7 +214,7 @@ freetype-config --cflags # glib cd /tmp -wget -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz +wget -nv -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz tar xzf glib-2.25.17.tar.gz cd glib-2.25.17 cat > tomtom.cache << EOF @@ -249,10 +249,10 @@ make install cd /tmp -wget -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz +wget -nv -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz tar xzf SDL-1.2.15.tar.gz cd SDL-1.2.15 -wget -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch +wget -nv -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch patch -p0 -i sdl-fbcon-notty.patch ./configure --prefix=$PREFIX --host=$ARCH \ --disable-esd --disable-cdrom --disable-joystick --disable-video-x11 \ @@ -273,7 +273,7 @@ export PATH=$PREFIX/bin:$PATH # sdl image cd /tmp -wget -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz +wget -nv -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz tar xzf SDL_image-1.2.12.tar.gz cd SDL_image-1.2.12 ./configure --prefix=$PREFIX --host=$ARCH diff --git a/circle.yml b/circle.yml index d00c9f624..b3ccc4dab 100644 --- a/circle.yml +++ b/circle.yml @@ -58,6 +58,3 @@ deployment: owner: navit-gps commands: - bash ci/merge_i18n_update.sh -notify: - webhooks: - - url: http://62.210.125.30:8000/ |