【发布时间】:2017-04-10 02:29:18
【问题描述】:
我正在使用 Jenkins Pipelines 构建我的包并将它们交付给 Artifactory。我正在尝试通过 Gradle Release Plugin 将它与 Gradle 一起使用,但它有问题。
我正在启动一个 ssh-agent,以便 Gradle 有权推送 Git 存储库:
sshagent([git_credential]) {
sh "./gradlew clean release unSnapshotVersion -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${release_version} -Prelease.newVersion=${development_version}"
}
问题是 Gradle 似乎是异步运行的,ssh-agent 在 Gradle 执行结束之前停止。请参阅上面的 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 同步运行?
谢谢
【问题讨论】:
标签: git jenkins gradle jenkins-pipeline ssh-agent