4

我想为 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 >= 1.39 现在支持令牌设置;见https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.FreeStyleJob.authenticationToken

4

2 回答 2

3

当我将“配置”块作为作业定义的第一部分移动时,它已修复。

所以而不是:

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>
}

现在令牌配置已正确保存在作业配置中。

于 2015-09-16T21:24:04.943 回答
3

您可以简单地使用:

FreeStyleJob {
    authenticationToken('mytoken')
    ...
}

它没有 DSL API 文档,但 DSL API 查看器会为您生成一个。您可以在

<YourJenkinsURL>/plugin/job-dsl/api-viewer/index.html#method/javaposse.jobdsl.dsl.jobs.FreeStyleJob.authenticationToken
于 2018-03-08T00:07:57.083 回答