Currently i am using azure pipeline for my android projects and i am using macOS agents to create run time emulator for UI testing. Recently my pipeline randomly start breaking with connection reset issue.
in android i have few tasks ./gradlew testDebugUnitTest createDebugCoverageReport createDebugCoverage
first two task run without any issue but when gradle run createDebugCoverage it throws given error
> Could not resolve all files for configuration ‘:project:jacocoAnt’.
Could not download org.jacoco.ant-0.8.3.jar (org.jacoco:org.jacoco.ant:0.8.3)
Could not get resource ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.ant/0.8.3/org.jacoco.ant-0.8.3.jar’.
Could not GET ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.ant/0.8.3/org.jacoco.ant-0.8.3.jar’.
Connection reset
Could not download org.jacoco.report-0.8.3.jar (org.jacoco:org.jacoco.report:0.8.3)
Could not get resource ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.8.3/org.jacoco.report-0.8.3.jar’.
Could not GET ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.8.3/org.jacoco.report-0.8.3.jar’.
Connection reset
Could not download org.jacoco.core-0.8.3.jar (org.jacoco:org.jacoco.core:0.8.3)
Could not get resource ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.8.3/org.jacoco.core-0.8.3.jar’.
Could not GET ‘https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.8.3/org.jacoco.core-0.8.3.jar’.
Connection reset
please note it’s random error i did not get this error every time
i have contacted azure and virtual environment team who manage macOS image but both of them mention it’s a gradle issue, connection become ideal for gradle and it throws error.
i have already tried different gradle and jacoco version and configuration given below
./gradlew test<app>DebugUnitTest create<app>DebugCoverageReport create<app>DebugCoverage -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=3
gradle.properties
systemProp.org.gradle.internal.http.connectionTimeout=300000
systemProp.org.gradle.internal.http.socketTimeout=300000
systemProp.org.gradle.internal.repository.max.retries=10
systemProp.org.gradle.internal.repository.initial.backoff=500
using max worker
--max-workers=1