diff --git a/.travis.yml b/.travis.yml index c6949b8..4896a58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,23 @@ -sudo: false +sudo: required -language: python +language: generic -python: - - "2.7" - - "3.6" +services: + - docker -install: pip install tox-travis +before_install: + - travis_retry sudo apt update -qq + - travis_retry sudo apt install -qq --no-install-recommends python2.7 python3 + - sudo pip install tox>=2.0 + # https://github.com/travis-ci/travis-ci/issues/6069#issuecomment-266546552 + - git remote set-branches --add origin master + - git fetch -script: tox +before_script: + # we want to fail fast on tox errors without having to `docker build` first + - tox + +script: + # simply makes sure the Docker image builds and run + - docker build --tag=buildozer . + - docker run buildozer --version diff --git a/Dockerfile b/Dockerfile index 36dacde..1748268 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,6 @@ # Build with: # docker build --tag=buildozer . # -# if you want to use bleeding edge/current version from git, instead from pypi, then use -# docker build --tag=buildozer --build-arg git=true . -# # In order to give the container access to your current working directory # it must be mounted using the --volume option. # Run with (e.g. `buildozer --version`): @@ -13,17 +10,13 @@ # docker run --volume "$(pwd)":/home/user/hostcwd --entrypoint /bin/bash -it --rm buildozer FROM ubuntu:18.04 -ARG git -ENV BDOZER_REQ=${git:+"/src"} -ENV BDOZER_REQ=${BDOZER_REQ:-"buildozer"} ENV USER="user" ENV HOME_DIR="/home/${USER}" ENV WORK_DIR="${HOME_DIR}/hostcwd" \ + SRC_DIR="${HOME_DIR}/src" \ PATH="${HOME_DIR}/.local/bin:${PATH}" -COPY . /src - # configures locale RUN apt update -qq > /dev/null && \ apt install -qq --yes --no-install-recommends \ @@ -35,14 +28,14 @@ ENV LANG="en_US.UTF-8" \ # installs system dependencies (required to setup all the tools) RUN apt install -qq --yes --no-install-recommends \ - sudo python-pip python-setuptools file + sudo python3-pip python3-setuptools file # https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-18-04-64bit RUN dpkg --add-architecture i386 && apt update -qq > /dev/null && \ 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 + libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python3 \ + python3-dev openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 # prepares non root env RUN useradd --create-home --shell /bin/bash ${USER} @@ -52,15 +45,9 @@ RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers USER ${USER} WORKDIR ${WORK_DIR} +COPY --chown=user:user . ${SRC_DIR} # installs buildozer and dependencies -RUN pip install --user Cython==0.25.2 $BDOZER_REQ - -# calling buildozer adb command should trigger SDK/NDK first install and update -# but it requires a buildozer.spec file -RUN cd /tmp/ && buildozer init && buildozer android adb -- version && cd - -# fixes source and target JDK version, refs https://github.com/kivy/buildozer/issues/625 -RUN sed s/'name="java.source" value="1.5"'/'name="java.source" value="7"'/ -i ${HOME_DIR}/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml -RUN sed s/'name="java.target" value="1.5"'/'name="java.target" value="7"'/ -i ${HOME_DIR}/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml +RUN pip3 install --user Cython==0.28.6 ${SRC_DIR} ENTRYPOINT ["buildozer"] diff --git a/buildozer/__init__.py b/buildozer/__init__.py index 4dea760..3b1f1cc 100644 --- a/buildozer/__init__.py +++ b/buildozer/__init__.py @@ -510,10 +510,12 @@ class Buildozer(object): exit(1) # did we already installed the libs ? - if exists(self.applibs_dir) and \ - self.state.get('cache.applibs', '') == requirements: - self.debug('Application requirements already installed, pass') - return + if ( + exists(self.applibs_dir) and + self.state.get('cache.applibs', '') == requirements + ): + self.debug('Application requirements already installed, pass') + return # recreate applibs self.rmdir(self.applibs_dir) diff --git a/tox.ini b/tox.ini index 7598029..3008490 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pep8,py27,py36 +envlist = pep8,py27,py3 [testenv] deps = mock