From b617a99f6561f9be4966c9c8d1542b8c804b9fac Mon Sep 17 00:00:00 2001 From: Andre Miras Date: Sat, 19 May 2018 20:46:46 +0200 Subject: [PATCH 1/2] Build `testapp_sqlite_openssl` using `setup_testapp_python2.py` Has the following requirements: sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3 peewee had to be skipped because pure python modules fail with nested virtualenv issue, see: https://github.com/kivy/python-for-android/issues/1263#issuecomment-390421054 refs #1263 --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7c0dc557d4..5509bb0a6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,3 +12,7 @@ script: - docker run p4a /bin/sh -c 'uname -a' - docker run p4a /bin/sh -c '. venv/bin/activate && p4a apk --help' - docker run p4a /bin/sh -c '. venv/bin/activate && cd testapps/ && python setup_testapp_python2.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk' + # overrides requirements to skip `peewee` pure python module, see: + # https://github.com/kivy/python-for-android/issues/1263#issuecomment-390421054 + # python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3 + - docker run p4a /bin/sh -c '. venv/bin/activate && cd testapps/ && python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3' From 82575a15e8059189175af72ab1f735fcc771bcc3 Mon Sep 17 00:00:00 2001 From: Andre Miras Date: Sat, 19 May 2018 22:37:20 +0200 Subject: [PATCH 2/2] Runs builds in parallel and reduces logs Not only this speeds up build, but also workaround Travis 4M logs limits, since it creates one log per build rather than all in the same file. Also adds `-qq` flag to `apt` and `--quiet` to `pip`, to reduce logs even more. --- .travis.yml | 14 ++++++++------ Dockerfile | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5509bb0a6d..5fe9942769 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,13 @@ services: before_install: - docker build --tag=p4a . -script: - - docker run p4a /bin/sh -c 'uname -a' - - docker run p4a /bin/sh -c '. venv/bin/activate && p4a apk --help' - - docker run p4a /bin/sh -c '. venv/bin/activate && cd testapps/ && python setup_testapp_python2.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk' +env: + - COMMAND='uname -a' + - COMMAND='. venv/bin/activate && p4a apk --help' + - COMMAND='. venv/bin/activate && cd testapps/ && python setup_testapp_python2.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk' # overrides requirements to skip `peewee` pure python module, see: # https://github.com/kivy/python-for-android/issues/1263#issuecomment-390421054 - # python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3 - - docker run p4a /bin/sh -c '. venv/bin/activate && cd testapps/ && python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3' + - COMMAND='. venv/bin/activate && cd testapps/ && python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir /opt/android/android-sdk --ndk-dir /opt/android/android-ndk --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3' + +script: + - docker run p4a /bin/sh -c "$COMMAND" diff --git a/Dockerfile b/Dockerfile index 56333af708..183b972b2d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,16 +29,16 @@ ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_A ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}" # install system dependencies -RUN apt update && apt install --yes --no-install-recommends \ +RUN apt update -qq && apt install -qq --yes --no-install-recommends \ python virtualenv python-pip wget curl lbzip2 patch # build dependencies # https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit -RUN dpkg --add-architecture i386 && apt-get update && apt install --yes --no-install-recommends \ +RUN dpkg --add-architecture i386 && apt update -qq && apt install -qq --yes --no-install-recommends \ build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 \ libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev \ openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 -RUN pip install --upgrade cython==0.21 +RUN pip install --quiet --upgrade cython==0.21 # download and install Android NDK RUN curl --progress-bar "${ANDROID_NDK_DL_URL}" --output "${ANDROID_NDK_ARCHIVE}" && \ @@ -61,4 +61,4 @@ RUN "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "build-tools;26.0.2" # install python-for-android from current branch WORKDIR /app COPY . /app -RUN virtualenv --python=python venv && . venv/bin/activate && pip install -e . +RUN virtualenv --python=python venv && . venv/bin/activate && pip install --quiet -e .