X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=.travis.yml;h=87adfa86e585268fe71959376cfbb541b6d0b935;hb=b2ca49b26cb89f3771f3b0daa21d62bb2152b6f7;hp=e7b004c0a4945c2cd51f9eae58be69afaf0a795f;hpb=21404e8622b87420136bedc9bfd38af5b75221ff;p=fdroidserver.git diff --git a/.travis.yml b/.travis.yml index e7b004c0..87adfa86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,48 +3,109 @@ language: java matrix: - allow_failures: - - os: linux # this is really about OSX, Ubuntu is just bonus include: - os: linux language: android - sudo: required - # this doesn't actually work yet https://github.com/travis-ci/travis-ci/issues/5337 - dist: trusty - os: osx - osx_image: xcode8 - env: ANDROID_HOME=/usr/local/opt/android-sdk + osx_image: xcode9.1 + env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk + env: ANDROID_HOME=/usr/local/share/android-sdk + - os: osx + osx_image: xcode7.3 + env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk + env: ANDROID_HOME=/usr/local/share/android-sdk + - os: osx + osx_image: xcode6.4 + env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk + env: ANDROID_HOME=/usr/local/share/android-sdk -licenses: - - 'android-sdk-preview-license-52d11cd2' - - 'android-sdk-license-.+' +# On Ubuntu/trusty 14.04, the PPA is needed on to provide lots of the +# dependencies, but this then also serves as a test of the PPA, which +# is used on Windows Subsystem for Linux. +addons: + apt: + sources: + - sourceline: 'ppa:fdroid/fdroidserver' + packages: + - bash + - dash + - pylint + - pep8 + - python3-babel + - python3-dev + - python3-pip + - python3-ruamel.yaml + - python3-setuptools + - python3.4-venv + - libjpeg-dev + - zlib1g-dev + - fdroidserver -# the PPA is needed on Ubuntu 14.04 precise, and with python3, trusty too -# the pip thing is a hack that can go away with trusty +android: + components: + - android-23 # required for `fdroid build` test + - build-tools-25.0.3 # required for `fdroid build` test + licenses: + - 'android-sdk-preview-.+' + - 'android-sdk-license-.+' + +# * ensure java8 is installed since Android SDK doesn't work with Java9 +# * Java needs to be at least 1.8.0_131 to have MD5 properly disabled +# https://blogs.oracle.com/java-platform-group/oracle-jre-will-no-longer-trust-md5-signed-code-by-default +# https://opsech.io/posts/2017/Jun/09/openjdk-april-2017-security-update-131-8u131-and-md5-signed-jars.html install: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + set -x; brew update > /dev/null; - brew install android-sdk dash gnu-sed jpeg python3; - sudo pip3 install pep8 pyflakes pylint; - sudo pip3 install -e .; + brew install dash bash python3 gradle jenv; + brew install gnu-sed --with-default-names; + if ! ruby -e 'v = `javac -version 2>&1`.split()[1].gsub("_", "."); exit Gem::Dependency.new("", "~> 1.8.0.131").match?("", v)'; then + brew cask uninstall java --force; + brew cask install caskroom/versions/java8; + fi; + brew cask install android-sdk; + + export AAPT_VERSION=`sed -n "s,^MINIMUM_AAPT_VERSION\s*=\s*['\"]\(.*\)[['\"],\1,p" fdroidserver/common.py`; + mkdir -p "$ANDROID_HOME/licenses"; + echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"; + echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license"; + echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"; + echo y | $ANDROID_HOME/tools/bin/sdkmanager "platform-tools"; + echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;$AAPT_VERSION"; + echo y | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-23"; + + sudo pip3 install babel; + sudo pip3 install --quiet --editable . ; sudo rm -rf fdroidserver.egg-info; - echo y | android --verbose update sdk --no-ui --all --filter platform-tools,build-tools-24.0.0; - elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - sudo add-apt-repository ppa:guardianproject/fdroidserver -y; - sudo apt-get -q update -y; - sudo apt-get -q install -y --no-install-recommends python3 python3-dev - python3-git python3-pil python3-libcloud python3-logilab-astng - python3-paramiko python3-pip python3-pyasn1 python3-pyasn1-modules - python3-requests python3-venv python3-yaml rsync - pyflakes pylint3 pep8 dash bash ruby libjpeg-dev zlib1g-dev; - sudo pip3 install pylint; - fi + ls -l /System/Library/Java/JavaVirtualMachines || true; + ls -l /Library/Java/JavaVirtualMachines || true; + echo $PATH; + echo $JAVA_HOME; + jenv versions; + /usr/libexec/java_home; + java -version; + which java; + javac -version; + which javac; + jarsigner -help; + which jarsigner; + keytool -help; + which keytool; + set +x; + fi + +# The OSX tests seem to run slower, they often timeout. So only run +# the test suite with the installed version of fdroid, instead of the +# three rounds that ./complete-ci-tests does. script: - cd tests - - ./complete-ci-tests + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + ./run-tests; + else + ./complete-ci-tests; + fi after_failure: - cd $TRAVIS_BUILD_DIR - - ls -lRa env - ls -lR | curl -F 'clbin=<-' https://clbin.com