2016-11-25 196 views
0

我正在使用Jenkins管道来构建我的包并将它们交付给Artifactory。我试图通过Gradle Release Plugin与Gradle一起使用它,但它有问题。Jenkins管道与Gradle发布插件

我开始一个SSH代理,使摇篮具有推动Git仓库的权限:

sshagent([git_credential]) { 
    sh "./gradlew clean release unSnapshotVersion -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${release_version} -Prelease.newVersion=${development_version}" 
} 

的问题是摇篮似乎异步运行,ssh的代理摇篮年底前停止执行。见上面的Jenkins日志:

[Pipeline] sshagent 
[ssh-agent] Using credentials git 
[ssh-agent] Looking for ssh-agent implementation... 
[ssh-agent] Java/JNR ssh-agent 
[ssh-agent] Registered BouncyCastle on the remote agent 
[ssh-agent] Started. 
[Pipeline] { 
[Pipeline] sh 
[Release - MyModule] Running shell script 
+ ./gradlew clean release unSnapshotVersion -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=1.1.0 -Prelease.newVersion=1.2.0-SNAPSHOT 
:clean 
:release 
:Release - MyModule:createScmAdapter 
:Release - MyModule:initScmAdapter 
:Release - MyModule:checkCommitNeeded 
[ssh-agent] Stopped. 
:Release - MyModule:checkUpdateNeeded 
Running [git, remote, update] produced an error: [fatal: could not read Username for 'https://bitbucket.org': No such device or address 
error: Impossible de récupérer origin] 
:Release - MyModule:checkUpdateNeeded FAILED 
:release FAILED 
Release process failed, reverting back any changes made by Release Plugin. 

是否有可能强制Gradle同步运行?

感谢

回答

0

日志的误导我,SSH-剂退出,因为摇篮不得不Git仓库的访问权限。事实上,在使用https克隆一个Bitbucket repo时,需要用户+密码。 使用SSH克隆相同的repo时,ssh-agent提供证书,Gradle能够与Bitbucket通信。