如何为作业的config.xml添加“远程触发器构建”的authToken

时间:2015-09-01 05:11:37

标签: jenkins-job-dsl

我想为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

2 个答案:

答案 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