我想为Jenkins作业启用“远程触发器构建”选项,并定义了身份验证令牌。我试过这个:
freeStyleJob('Sandbox/test-trigger') {
configure { project ->
(project / 'authToken').setValue('mytoken')
}
}
根据http://job-dsl.herokuapp.com/,我最终在项目配置XML的顶层创建了一个authToken行(根据需要):
<project>
[...]
<authToken>mytoken</authToken>
</project>
但是,在运行Job-DSL之后,我没有在生成的XML中定义authToken,也没有在配置中启用该选项。 我有什么想法吗?
将Jenkins 1.609.2与job-dsl 1.37一起使用。
更新:job-dsl&gt; = 1.39现在支持令牌设置;见https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.FreeStyleJob.authenticationToken
答案 0 :(得分:3)
当我将“configure”块作为作业定义的第一部分移动时,它已得到修复。
所以而不是:
freeStyleJob('Sandbox/test-trigger') {
<lots of other job config>
configure { project ->
(project / 'authToken').setValue('mytoken')
}
}
我把它改为:
freeStyleJob('Sandbox/test-trigger') {
configure { project ->
(project / 'authToken').setValue('mytoken')
}
<lots of other job config>
}
现在令牌配置已妥善保存在作业配置中。
答案 1 :(得分:1)
您可以简单地使用:
FreeStyleJob {
authenticationToken('mytoken')
...
}
它没有DSL API文档,但DSL API查看器会为您生成一个。您可以在
查看<YourJenkinsURL>/plugin/job-dsl/api-viewer/index.html#method/javaposse.jobdsl.dsl.jobs.FreeStyleJob.authenticationToken