一尘不染

jenkins:通过Groovy API设置根URL

jenkins

我正在尝试通过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/;并打印出新网址以确认其已更改。

println语句将打印出我期望的结果,但是此后,通过Web界面“ Manage Jenkins”->“配置系统”->“ Jenkins
URL”可见的值 未按 我的预期进行更新。

我担心Jenkins尚未正确更新该值,这可能会导致在与外部API通信时出现问题。

这是修复Jenkins根URL的有效方法吗?如果没有,那是什么?否则,为什么更改没有反映在配置页面上?


阅读 292

收藏
2020-07-25

共1个答案

一尘不染

您正在创建一个新的JenkinsLocationConfiguration对象,并更新新的对象,而不是正在使用的现有对象。

jlc = JenkinsLocationConfiguration.get()
// ...
jlc.save()

要从全局jenkins配置中获取一个,请对其进行更新并保存回配置描述符。

参见:https
:
//github.com/jenkinsci/jenkins/blob/master/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java

2020-07-25