jenkins-job-dsl - 如何将 "Trigger builds remotely"的 authToken 添加到作业的 config.xml

标签 jenkins-job-dsl

我想为 Jenkins 作业启用“远程触发构建”选项,并定义一个身份验证 token 。我试过这个:

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

最佳答案

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

所以而不是:

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

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

关于jenkins-job-dsl - 如何将 "Trigger builds remotely"的 authToken 添加到作业的 config.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323959/

相关文章:

jenkins-job-dsl - Jenkins Job DSL 始终使用 git 插件为自由式作业创建 git 标签

jenkins - 从 Jenkins Multijob 迁移到 Pipeline 插件

jenkins - dsl 插件删除作业时删除工作区

jenkins - 执行 DSL 时 Jenkins 2.0 中的 java.lang.ClassNotFoundException : java. lang$Enum

jenkins - 使用 job-dsl/pipeline 语法的多个 cron 表达式

groovy - 作业 dsl 中未发生变量替换

Groovy 脚本无法从 Jenkins DSL 作业调用 Slack 通知参数

jenkins - 将密码作为环境变量注入(inject)到构建中

jenkins - 使用Jenkins Job DSL在Jenkins中使用Artifactory配置作业

jenkins - 如何将现有作业导出到 Jenkinsfile 中?