我想在我的Jenkins配置中使用脚本创建一个简单的管道作业。所以我的jenkins.yaml文件如下:
jobs:
- script: >
pipelineJob('Tag Repositories') {
definition {
cps {
def theScript = readFileFromWorkspace('git_tag_job.groovy')
script(theScript)
sandbox()
}
}
}
字符串
因此,我认为文件git_tag_job.groovy
可以在Jenkins主目录中,但看起来readFileFromWorkspace正在查看尚未创建的作业的工作区。结果,我得到NPE错误,因为工作区为空。
现在的问题是,我如何使用Configuration As Code插件添加此作业,并将git_tag_job.groovy
的内容作为其脚本?
这个脚本很大,我不能把它放在Yaml文件中。
让我感到奇怪的是,如果我们不能从某个地方加载脚本,这个配置和readFileFromWorkspace就没用了,因为你很少有一个管道作业只有一行脚本,所以从文件加载是唯一可行的选择。
我错过了什么吗?或者有其他方法可以做到这一点吗?
2条答案
按热度按时间d6kp6zgx1#
我知道这是一个老问题,但我面临着完全相同的问题,所以这里有一个解决方案以下@xbmono的评论,任何人谁绊倒在这里:
我选择将seed job脚本从yaml文件中分离出来,但基本上是一样的。
字符串
型
u1ehiz5o2#
通过CasC创建的seed job在没有工作空间的情况下运行,通过设计。您的整个配置应该“作为代码”进行管理并进行版本控制。在您的情况下,可以从URL,git标签等加载作业脚本。