我在詹金斯(Jenkins)的多分支项目工作正常,但我想修改职位描述,默认情况下,该职位描述为“ Full project name:xxxx /”,以使其更有意义。
通过使用执行我currentBuild
时可用的变量,我可以轻松更改构建说明Jenkinfile
,但是我无法弄清楚如何修改父作业描述。
我的用例是我的存储库的每个分支都有一个关联的容器,该容器在完成后会用最新的构建进行更新。因此,我的多分支项目中的每个作业都有其容器和Web URI,我希望将其放入作业描述中。
这可能吗?
如何使用Jenkins Api更新当前职位的描述?就像是:
要更新顶级多分支项目描述:
def jobName = "${env.JOB_NAME}"
Jenkins.instance.getItem(jobName.split('/')[0]).description = "hi"
要在多分支项目中更新特定分支项目的描述:
def jobName = "${env.JOB_NAME}"
Jenkins.instance.getItem(jobName.split('/')[0]).getItem("${env.BRANCH_NAME}").description = "hi"
注意:您需要通过“管理Jenkins”->“进行中的脚本批准”批准多个功能。
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use staticMethod jenkins.model.Jenkins getInstance
:-(我认为您应该可以通过转到“管理Jenkins”->“进程内脚本批准”来批准它。否则请通知我。
哇,这改变了一切。我认为您无法从Jenkinsfile访问全局变量,但是这种“进行中脚本批准”非常棒。谢谢丹尼尔。
谢谢丹尼尔。在我的情况下,我必须转义分支名称,因为它包含已转换为“%2F”的“ /”(斜杠),但总的来说还是可行的。