【发布时间】:2021-08-19 12:55:26
【问题描述】:
我正在实现将 Jenkins 管道的触发用户公开给我们的 CD 系统的功能,因此我获取了 build user vars 插件:https://plugins.jenkins.io/build-user-vars-plugin/
插件的工作方式似乎是你包装你需要暴露的变量的代码,像这样:
wrap([$class: 'BuildUser']) {
userId = env.BUILD_USER_ID
}
我在一个通用管道上尝试了这个,只是回应它,一切都很好。
然后我尝试在我们的共享库中实现它,这样所有对 CD 的调用都会发生这种情况,但我遇到了一个错误。
wrap([$class: 'BuildUser']) {
jobBuildUrl ="${jobBuildUrl}&USER_ID=${env.BUILD_USER_ID}"
}
[2021-08-19T10:20:22.852Z] hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名:com.company.jenkins.pipelines.BuildManager.wrap() 适用于参数类型: (java.util.LinkedHashMap, org.jenkinsci.plugins.workflow.cps.CpsClosure2) 值:[[$class:BuildUser], org.jenkinsci.plugins.workflow.cps.CpsClosure2@1c9a210c]
有没有办法在共享库中使用这个插件代码?如果有怎么办?
我不相信,但我认为值得一问。供参考,有这个悬而未决的问题:https://issues.jenkins.io/browse/JENKINS-44741
旁注,我试图在不触及每个人的管道的情况下做到这一点。如果这个插件无法做到这一点,我可能会在共享库中实现我自己的版本。
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-plugins