我正在尝试通过 Groovy API 更新 Jenkins 的根 URL,这样我就可以编写 Jenkins master 的部署脚本,而无需手动输入(旁白:为什么像 Jenkins 这样受构建/devops/自动化社区欢迎的工具如此抵制)自动化?)
基于本文档 http://javadoc.jenkins-ci.org/jenkins/model/JenkinsLocationConfiguration.html#setUrl(java.lang.String),我相信我应该能够在脚本控制台中使用以下脚本来更新 URL。
import jenkins.model.JenkinsLocationConfiguration
jlc = new jenkins.model.JenkinsLocationConfiguration()
jlc.setUrl("http://jenkins.my-org.com:8080/")
println(jlc.getUrl())
简而言之,这实例化了一个JenkinsLocationConfiguration
目的;调用设置者setUrl
与所需的值,http://jenkins.my-org.com:8080/
;并打印出新的 URL 以确认它已更改。
The println
语句打印出我期望的内容,但是在此之后,通过 Web 界面在“管理 Jenkins”->“配置系统”->“Jenkins URL”中可见的值有not更新如我所料。
我担心 Jenkins 没有正确更新该值,这可能会导致与外部 API 通信时出现问题。
这是修复 Jenkins 根 URL 的有效方法吗?如果不是,那是什么?否则,为什么更改没有反映在配置页面中?
您正在创建一个新的 JenkinsLocationConfiguration 对象,并更新新的对象,而不是正在使用的现有对象
use
jlc = JenkinsLocationConfiguration.get()
// ...
jlc.save()
要从全局 jenkins 配置中获取一个,请更新它并将配置描述符保存回来。
see : https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)