【问题标题】:Jenkins Pipelines with Gradle release plugin带有 Gradle 发布插件的 Jenkins Pipelines
【发布时间】: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


    【解决方案1】:

    日志误导了我,ssh-agent 正在退出,因为 Gradle 无权访问 GIT 存储库。事实上,in 是使用 https 克隆一个 Bitbucket 存储库,需要 user+pwd。 使用 SSH 克隆相同的 repo 时,ssh-agent 提供证书,Gradle 能够与 Bitbucket 通信。

    【讨论】:

      猜你喜欢
      • 2020-08-30
      • 2014-03-04
      • 2017-05-06
      • 2014-09-12
      • 1970-01-01
      • 2012-02-17
      • 2013-04-02
      • 2014-07-23
      • 2018-06-02
      相关资源
      最近更新 更多