有哪些技术可以避免使用Jenkins工作流Groovy脚本进行脚本批准?

时间:2015-04-09 19:16:17

标签: groovy jenkins-workflow

Jenkins Workflow插件的以下脚本:

def mapping = readFile 'a file'
mapping.eachLine {
      def line = it.tokenize('|')
      sh "${line[1]}"
}

需要脚本批准:

staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachLine java.lang.String java.lang.String

为了让脚本成功运行,必须尝试构建,必须授予手动批准,然后必须再次尝试其他构建,依此类推。

对于大型脚本,保持白名单方法是一个相当繁琐的过程。

是否有一些groovy方法的子集不需要脚本批准和/或白名单?

1 个答案:

答案 0 :(得分:5)

你需要批准新出现的方法。

Script Security插件附带了一些已列入白名单的方法。您在此处列出的方法尚未实现。 JENKINS-25804默认跟踪将白名单常规计算方法列入白名单的愿望。

请注意,如果您使用来自SCM 脚本源的 Groovy CPS DSL,则有意选择禁用沙箱模式,即使用整个脚本批准模式。这是因为管理员需要在每次提交的编辑后批准整个脚本,无论多么微不足道。相比之下,使用 Groovy CPS DSL 源,管理员进行的每次编辑都会立即记录为已批准,而无需单独执行。