chiark / gitweb /
9d78587c951db9a42d69c471b3fc64ab4f91df39
[fdroidserver.git] / .travis.yml
1
2 # Use the Android base system since it provides the SDK, etc.
3 language: java
4
5 matrix:
6   include:
7     - os: linux
8       language: android
9     - os: osx
10       osx_image: xcode9.1
11       env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk
12       env: ANDROID_HOME=/usr/local/share/android-sdk
13     - os: osx
14       osx_image: xcode7.3
15       env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk
16       env: ANDROID_HOME=/usr/local/share/android-sdk
17     - os: osx
18       osx_image: xcode6.4
19       env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk
20       env: ANDROID_HOME=/usr/local/share/android-sdk
21
22 addons:
23   apt:
24     sources:
25       - sourceline: 'ppa:fdroid/fdroidserver'
26     packages:
27     - bash
28     - dash
29     - pylint
30     - pep8
31     - python3-dev
32     - python3-pip
33     - python3-ruamel.yaml
34     - python3-setuptools
35     - python3.4-venv
36     - libjpeg-dev
37     - zlib1g-dev
38     - fdroidserver
39
40 android:
41   components:
42     - android-23  # required for `fdroid build` test
43     - build-tools-25.0.3  # required for `fdroid build` test
44   licenses:
45     - 'android-sdk-preview-.+'
46     - 'android-sdk-license-.+'
47
48 # the PPA is needed on Ubuntu 14.04 precise, and with python3, trusty too
49 # the pip thing is a hack that can go away with trusty.
50 #
51 # * ensure java8 is installed since Android SDK doesn't work with Java9
52 # * Java needs to be at least 1.8.0_131 to have MD5 properly disabled
53 #   https://blogs.oracle.com/java-platform-group/oracle-jre-will-no-longer-trust-md5-signed-code-by-default
54 #   https://opsech.io/posts/2017/Jun/09/openjdk-april-2017-security-update-131-8u131-and-md5-signed-jars.html
55 install:
56   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
57       brew update > /dev/null;
58       brew install dash bash python3 gradle jenv;
59       brew install gnu-sed --with-default-names;
60       if ! ruby -e 'v = `javac -version 2>&1`.split()[1].gsub("_", "."); exit Gem::Dependency.new("", "~> 1.8.0.131").match?("", v)'; then
61         brew cask uninstall java --force;
62         brew cask install caskroom/versions/java8;
63       fi;
64       brew cask install android-sdk;
65
66       mkdir -p "$ANDROID_HOME/licenses";
67       echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license";
68       echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license";
69       echo y | $ANDROID_HOME/tools/bin/sdkmanager "platform-tools" > /dev/null 2&>1;
70       echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2" > /dev/null 2&>1;
71       echo y | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-23" > /dev/null 2&>1;
72
73       sudo pip3 install --quiet --editable . ;
74       sudo rm -rf fdroidserver.egg-info;
75
76       echo $PATH;
77       echo $JAVA_HOME;
78       jenv versions;
79       /usr/libexec/java_home;
80       java -version;
81       which java;
82       javac -version;
83       which javac;
84       jarsigner -help;
85       which jarsigner;
86       keytool -help;
87       which keytool;
88     fi
89
90 script:
91   - cd tests
92   - ./complete-ci-tests
93
94 after_failure:
95   - cd $TRAVIS_BUILD_DIR
96   - ls -lR | curl -F 'clbin=<-' https://clbin.com