Skip to content

Android project with Gradle wont build, fails to download Gradle

Summary

Android Gradle builds fail on CI for not being able to download Gradle.

Steps to reproduce

Try building an Android project with the below CI configuration:

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip openjdk-7-jdk lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
  - tar --extract --gzip --file=android-sdk.tgz
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter platform-tools,tools,build-tools-22.0.1,android-22,extra-android-m2repository,extra-google-m2repository,extra-google-google_play_services
  - wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.10-all.zip
  - unzip -q gradle.zip
  - export ANDROID_HOME=$PWD/android-sdk-linux

dev:
  script:
    - cd mobile/Kamran\'sBlogManager/
    - ./gradlew assembleDebug

Actual behavior

This is the log I get:

$ wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.10-all.zip
$ unzip -q gradle.zip
$ export ANDROID_HOME=$PWD/android-sdk-linux
$ cd mobile/Kamran\'sBlogManager/
$ ./gradlew assembleDebug
Downloading https://services.gradle.org/distributions/gradle-2.10-all.zip

Exception in thread "main" java.lang.RuntimeException: javax.net.ssl.SSLException: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
  at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:78)
  at org.gradle.wrapper.Install.createDist(Install.java:47)
  at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
  at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: javax.net.ssl.SSLException: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
  at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
  at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1914)
  at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1872)
  at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1855)
  at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1376)
  at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1353)
  at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1348)
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
  at org.gradle.wrapper.Download.downloadInternal(Download.java:59)
  at org.gradle.wrapper.Download.download(Download.java:45)
  at org.gradle.wrapper.Install$1.call(Install.java:60)
  at org.gradle.wrapper.Install$1.call(Install.java:47)
  at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
  ... 3 more
Caused by: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
  at sun.security.pkcs11.P11Key$P11ECPublicKey.getEncodedInternal(P11Key.java:1024)
  at sun.security.pkcs11.P11Key.equals(P11Key.java:158)
  at java.util.ArrayList.indexOf(ArrayList.java:298)
  at java.util.ArrayList.contains(ArrayList.java:281)
  at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:239)
  at sun.security.validator.Validator.validate(Validator.java:260)
  at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
  at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
  at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
  at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1459)
  at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:213)
  at sun.security.ssl.Handshaker.processLoop(Handshaker.java:961)
  at sun.security.ssl.Handshaker.process_record(Handshaker.java:897)
  at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1033)
  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)
  at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1369)
  ... 13 more
Caused by: java.security.InvalidKeyException: EC parameters error
  at sun.security.ec.ECParameters.getAlgorithmParameters(ECParameters.java:284)
  at sun.security.ec.ECPublicKeyImpl.<init>(ECPublicKeyImpl.java:59)
  at sun.security.pkcs11.P11Key$P11ECPublicKey.getEncodedInternal(P11Key.java:1021)
  ... 28 more
Caused by: java.security.NoSuchProviderException: no such provider: SunEC
  at sun.security.jca.GetInstance.getService(GetInstance.java:83)
  at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
  at java.security.Security.getImpl(Security.java:697)
  at java.security.AlgorithmParameters.getInstance(AlgorithmParameters.java:199)
  at sun.security.ec.ECParameters.getAlgorithmParameters(ECParameters.java:279)
  ... 30 more
ERROR: Job failed: exit code 1

Expected behavior

It should be able to download and build.

Environment description

Running with gitlab-ci-multi-runner 9.2.0 (adfc3875) on docker-auto-scale (4e4528ca) Using Docker executor with image ruby:2.1 ... Using docker image sha256:72c23af937d29a4941f1f96878539a58bc2fe0f7368ffb3cb71dae57bfe7bb10 for predefined container... Pulling docker image ruby:2.1 ... Using docker image ruby:2.1 ID=sha256:1f8acb5d591a86063213d80e3976e8d392e75bee38d5e88cec34d2dfc9f11fe7 for build container... Running on runner-4e4528ca-project-1186219-concurrent-0 via runner-4e4528ca-machine-1495957034-af3a5072-digital-ocean-2gb...