我正在尝试通过Groovy API更新Jenkins的根URL,因此我可以编写无需手动输入的Jenkins主服务器部署脚本(除了:为什么像Jenkins这样的工具在build / devops / automation社区中如此受欢迎?自动化?)
基于此文档,我相信我应该能够在脚本控制台中使用以下脚本来更新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/;并打印出新网址以确认其已更改。
JenkinsLocationConfiguration
setUrl
http://jenkins.my- org.com:8080/
该println语句将打印出我期望的结果,但是此后,通过Web界面“ Manage Jenkins”->“配置系统”->“ Jenkins URL”可见的值 未按 我的预期进行更新。
println
我担心Jenkins尚未正确更新该值,这可能会导致在与外部API通信时出现问题。
这是修复Jenkins根URL的有效方法吗?如果没有,那是什么?否则,为什么更改没有反映在配置页面上?
您正在创建一个新的JenkinsLocationConfiguration对象,并更新新的对象,而不是正在使用的现有对象。
用
jlc = JenkinsLocationConfiguration.get() // ... jlc.save()
要从全局jenkins配置中获取一个,请对其进行更新并保存回配置描述符。
参见:https : //github.com/jenkinsci/jenkins/blob/master/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java