calabash-android giving "No keystores found." when run under Jenkins -


i have simple test android project can test fine using ".\gradlew calabashdebug" in dos shell logged in myself. however, when run project under jenkins on continuous integration server fails "no keystores found." error (see stack trace below).

07:54:04.462 [debug] [org.gradle.process.internal.defaultexechandle] changing state to: starting 07:54:04.464 [debug] [org.gradle.process.internal.defaultexechandle] waiting until process started: command 'cmd'. 07:54:04.507 [info] [org.gradle.process.internal.processparentinginitializer] attempt initialize behaving parent process finished. 07:54:04.513 [debug] [org.gradle.process.internal.defaultexechandle] changing state to: started 07:54:04.513 [debug] [org.gradle.process.internal.exechandlerunner] waiting until streams handled... 07:54:04.514 [info] [org.gradle.process.internal.defaultexechandle] started process 'command 'cmd'' 07:54:05.111 [quiet] [system.out] no test server found combination of app , calabash version. recreating test server. 07:54:05.111 [quiet] [system.out] no keystores found. 07:54:05.112 [quiet] [system.out] please create 1 or run calabash-android setup configure calabash-android use existing keystore. 07:54:05.117 [debug] [org.gradle.process.internal.defaultexechandle] changing state to: failed 07:54:05.118 [debug] [org.gradle.process.internal.defaultexechandle] process 'command 'cmd'' finished exit value 1 (state: failed) 07:54:05.119 [debug] [org.gradle.api.internal.tasks.execution.executeatmostoncetaskexecuter] finished executing task ':calabashdebug' 07:54:05.119 [lifecycle] [class org.gradle.taskexecutionlogger] :calabashdebug failed 07:54:05.120 [info] [org.gradle.execution.taskgraph.abstracttaskplanexecutor] :calabashdebug (thread[main,5,main]) completed. took 0.666 secs. 07:54:05.120 [debug] [org.gradle.execution.taskgraph.abstracttaskplanexecutor] task worker [thread[main,5,main]] finished, busy: 1.014 secs, idle: 0.016 secs 07:54:05.125 [error] [org.gradle.buildexceptionreporter]  07:54:05.127 [error] [org.gradle.buildexceptionreporter] failure: build failed exception. 07:54:05.127 [error] [org.gradle.buildexceptionreporter]  07:54:05.127 [error] [org.gradle.buildexceptionreporter] * went wrong: 07:54:05.129 [error] [org.gradle.buildexceptionreporter] execution failed task ':calabashdebug'. 07:54:05.129 [error] [org.gradle.buildexceptionreporter] > process 'command 'cmd'' finished non-zero exit value 1 07:54:05.130 [error] [org.gradle.buildexceptionreporter]  07:54:05.131 [error] [org.gradle.buildexceptionreporter] * exception is: 07:54:05.132 [error] [org.gradle.buildexceptionreporter] org.gradle.api.tasks.taskexecutionexception: execution failed task ':calabashdebug'. 07:54:05.132 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.executeactionstaskexecuter.executeactions(executeactionstaskexecuter.java:69) 07:54:05.132 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.executeactionstaskexecuter.execute(executeactionstaskexecuter.java:46) 07:54:05.133 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.postexecutionanalysistaskexecuter.execute(postexecutionanalysistaskexecuter.java:35) 07:54:05.133 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.skipuptodatetaskexecuter.execute(skipuptodatetaskexecuter.java:64) 07:54:05.133 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.validatingtaskexecuter.execute(validatingtaskexecuter.java:58) 07:54:05.134 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.skipemptysourcefilestaskexecuter.execute(skipemptysourcefilestaskexecuter.java:42) 07:54:05.134 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.skiptaskwithnoactionsexecuter.execute(skiptaskwithnoactionsexecuter.java:52) 07:54:05.134 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.skiponlyiftaskexecuter.execute(skiponlyiftaskexecuter.java:53) 07:54:05.134 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.executeatmostoncetaskexecuter.execute(executeatmostoncetaskexecuter.java:43) 07:54:05.135 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.abstracttask.executewithoutthrowingtaskfailure(abstracttask.java:289) 07:54:05.135 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.abstracttaskplanexecutor$taskexecutorworker.executetask(abstracttaskplanexecutor.java:79) 07:54:05.135 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.abstracttaskplanexecutor$taskexecutorworker.processtask(abstracttaskplanexecutor.java:63) 07:54:05.136 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.abstracttaskplanexecutor$taskexecutorworker.run(abstracttaskplanexecutor.java:51) 07:54:05.136 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.defaulttaskplanexecutor$1.run(defaulttaskplanexecutor.java:33) 07:54:05.137 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.internal.factories$1.create(factories.java:22) 07:54:05.137 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.cache.internal.defaultcacheaccess.longrunningoperation(defaultcacheaccess.java:198) 07:54:05.137 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.cache.internal.defaultcacheaccess.longrunningoperation(defaultcacheaccess.java:266) 07:54:05.137 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.cache.internal.defaultpersistentdirectorystore.longrunningoperation(defaultpersistentdirectorystore.java:135) 07:54:05.138 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.changedetection.state.defaulttaskartifactstatecacheaccess.longrunningoperation(defaulttaskartifactstatecacheaccess.java:95) 07:54:05.138 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.defaulttaskplanexecutor.process(defaulttaskplanexecutor.java:31) 07:54:05.138 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.taskgraph.defaulttaskgraphexecuter.execute(defaulttaskgraphexecuter.java:86) 07:54:05.138 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.selectedtaskexecutionaction.execute(selectedtaskexecutionaction.java:29) 07:54:05.139 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.defaultbuildexecuter.execute(defaultbuildexecuter.java:61) 07:54:05.139 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.defaultbuildexecuter.access$200(defaultbuildexecuter.java:23) 07:54:05.139 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.defaultbuildexecuter$2.proceed(defaultbuildexecuter.java:67) 07:54:05.140 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.dryrunbuildexecutionaction.execute(dryrunbuildexecutionaction.java:32) 07:54:05.140 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.defaultbuildexecuter.execute(defaultbuildexecuter.java:61) 07:54:05.140 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.execution.defaultbuildexecuter.execute(defaultbuildexecuter.java:54) 07:54:05.140 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.initialization.defaultgradlelauncher.dobuildstages(defaultgradlelauncher.java:166) 07:54:05.141 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.initialization.defaultgradlelauncher.dobuild(defaultgradlelauncher.java:113) 07:54:05.141 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.initialization.defaultgradlelauncher.run(defaultgradlelauncher.java:81) 07:54:05.141 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.exec.inprocessbuildactionexecuter$defaultbuildcontroller.run(inprocessbuildactionexecuter.java:64) 07:54:05.142 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.executebuildaction.run(executebuildaction.java:33) 07:54:05.142 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.executebuildaction.run(executebuildaction.java:24) 07:54:05.142 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.exec.inprocessbuildactionexecuter.execute(inprocessbuildactionexecuter.java:35) 07:54:05.143 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.exec.inprocessbuildactionexecuter.execute(inprocessbuildactionexecuter.java:26) 07:54:05.143 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.runbuildaction.run(runbuildaction.java:50) 07:54:05.143 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.internal.actions$runnableactionadapter.execute(actions.java:171) 07:54:05.144 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.commandlineactionfactory$parseandbuildaction.execute(commandlineactionfactory.java:201) 07:54:05.144 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.commandlineactionfactory$parseandbuildaction.execute(commandlineactionfactory.java:174) 07:54:05.144 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.commandlineactionfactory$withlogging.execute(commandlineactionfactory.java:170) 07:54:05.144 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.commandlineactionfactory$withlogging.execute(commandlineactionfactory.java:139) 07:54:05.145 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.exceptionreportingaction.execute(exceptionreportingaction.java:33) 07:54:05.145 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.cli.exceptionreportingaction.execute(exceptionreportingaction.java:22) 07:54:05.145 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.main.doaction(main.java:46) 07:54:05.145 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.bootstrap.entrypoint.run(entrypoint.java:45) 07:54:05.146 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.main.main(main.java:37) 07:54:05.146 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.bootstrap.processbootstrap.runnoexit(processbootstrap.java:50) 07:54:05.146 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.bootstrap.processbootstrap.run(processbootstrap.java:32) 07:54:05.147 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.launcher.gradlemain.main(gradlemain.java:23) 07:54:05.147 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.wrapper.bootstrapmainstarter.start(bootstrapmainstarter.java:33) 07:54:05.147 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.wrapper.wrapperexecutor.execute(wrapperexecutor.java:130) 07:54:05.148 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.wrapper.gradlewrappermain.main(gradlewrappermain.java:48) 07:54:05.148 [error] [org.gradle.buildexceptionreporter] caused by: org.gradle.process.internal.execexception: process 'command 'cmd'' finished non-zero exit value 1 07:54:05.148 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.process.internal.defaultexechandle$execresultimpl.assertnormalexitvalue(defaultexechandle.java:361) 07:54:05.149 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.process.internal.defaultexecaction.execute(defaultexecaction.java:31) 07:54:05.149 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.tasks.exec.exec(exec.java:63) 07:54:05.149 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.internal.reflect.javamethod.invoke(javamethod.java:63) 07:54:05.149 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.project.taskfactory.annotationprocessingtaskfactory$standardtaskaction.doexecute(annotationprocessingtaskfactory.java:219) 07:54:05.150 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.project.taskfactory.annotationprocessingtaskfactory$standardtaskaction.execute(annotationprocessingtaskfactory.java:212) 07:54:05.150 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.project.taskfactory.annotationprocessingtaskfactory$standardtaskaction.execute(annotationprocessingtaskfactory.java:201) 07:54:05.150 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.abstracttask$taskactionwrapper.execute(abstracttask.java:533) 07:54:05.150 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.abstracttask$taskactionwrapper.execute(abstracttask.java:516) 07:54:05.151 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.executeactionstaskexecuter.executeaction(executeactionstaskexecuter.java:80) 07:54:05.151 [error] [org.gradle.buildexceptionreporter]    @ org.gradle.api.internal.tasks.execution.executeactionstaskexecuter.executeactions(executeactionstaskexecuter.java:61) 07:54:05.151 [error] [org.gradle.buildexceptionreporter]    ... 52 more 

problem there no indication expects keystore default. have tried putting keystore in .android\debug.keystore under jenkins_home directory. have tried put calabash_settings file (and .calabash_settings file) following:

{"keystore_location":"c:\\program files (x86)\\jenkins\\.android\\debug.keystore","keystore_password":"android","keystore_alias":"androiddebugkey"} 

i have found 1 issue gradle-calabash-android-plugin use in build.gradle not specify "-v" or "--verbose" calabash-gradle command spawns. have created fork , pull request change gradle-calabash-android-plugin project address issue: github.com/pedlar/gradle-calabash-android-plugin/pull/6

after use new version of gradle-calabash-android-plugin got useful debug output:

15:29:02.455 [info] [org.gradle.process.internal.defaultexechandle] started process 'command 'cmd'' 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - jdk found on path. 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - jdk found at: c:\program files\java\jdk1.8.0 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - android sdk found at: c:\androidsdk\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\sdk 15:29:03.608 [quiet] [system.out] no test server found combination of app , calabash version. recreating test server. 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - "\program files\java\jdk1.8.0\bin/keytool.exe" -v -printcert -j"-dfile.encoding=utf-8" -file "c:/windows/temp/d20140423-5912-102klgo/meta-inf/cert.rsa" 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - md5 fingerprint signing cert (c:/users/jenkins/.jenkins/jobs/toasty/workspace/build/apk/workspace-debug-unaligned.apk): 11:fc:53:97:85:19:6c:2f:fa:af:00:b4:dc:a1:68:1e 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - c:/users/jenkins/.jenkins/jobs/toasty/workspace/build/apk/workspace-debug-unaligned.apk signed certificate fingerprint 11:fc:53:97:85:19:6c:2f:fa:af:00:b4:dc:a1:68:1e 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - trying read keystore from: c:/windows/system32/config/systemprofile/.android/debug.keystore - no such file 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - trying read keystore from: c:/users/jenkins/.jenkins/jobs/toasty/workspace/debug.keystore - no such file 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - trying read keystore from: c:/windows/system32/config/systemprofile/.local/share/xamarin/mono/ for/ android/debug.keystore - no such file 15:29:03.608 [quiet] [system.out] 2014-04-23 15:29:03 - trying read keystore from: c:/windows/system32/config/systemprofile/appdata/local/xamarin/mono android/debug.keystore - no such file 15:29:03.608 [quiet] [system.out] no keystores found. 

now not sure why calabash-android trying read keystore "c:/windows/system32/config/systemprofile/.android/debug.keystore" instead of "c:/users/jenkins/.android/debug.keystore". have jenkins running windows system service using login credentials user named jenkins on server.

so added file c:\windows\system32\config\systemprofile.android\debug.keystore. still getting same error odd.

i new developing on windows platform trivial silly white space or slash direction issue have not been able figure out. help.

it turns out of original problem stemmed fact had installed jenkins service ran local system account (see logon tab in service properties). causing jenkins read / write stuff in various system directories , running permission issues.

the solution to:

  1. delete jenkins windows service
  2. create jenkins local account on server
  3. login new jenkins user , install jenkins on again time jenkins user
  4. when configuring jenkins sure make sure use service properties / logon / account / .\jenkins
  5. make sure restart service after done

it last step had forgotten in end - doh! once did well!


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -