我有一个如下
的jenkins文件pipelineJob('My pipeline job'){
displayName('display name')
logRotator {
numToKeep(10)
daysToKeep(30)
artifactDaysToKeep(7)
artifactNumToKeep(1)
}
definition{
cps {
script(readFileFromWorkspace('./cicd/pipelines/clone_git_code.groovy'))
script(readFileFromWorkspace('./cicd/pipelines/install_dependencies_run_quality_checks.groovy'))
}
}
}
使用上述Jenkinsfile,最后一个script
文件正在替换其他脚本。基本上,我将任务分为多个时髦的文件,因此我不会在所有jenkinsfile中重复相同的代码,并将其重复使用其他作业,就像我现在可以在dev build和Qa builds中使用clone_git_code.groovy
脚本一样。
您必须使用共享库(https://jenkins.io/doc/book/pipeline/pipeline/shared-libraries/)。您可以使用类定义多个Groovy文件来返回处理的对象,或者简单地使用方法来定义步骤,并且执行将是顺序的。
我在尝试将多个脚本包含在詹金斯作业中时也遇到了同样的问题。进行了一些研究之后,我发现以下解决方案是最简单的:
definition {
cps {
script (
ScriptsLibrary.pipelineTest('did it work?') +
ScriptsLibrary.scmConf('repoURL_input', 'accessCredentials', 'activeBranch')
)
}
}
将" "添加到串联。为我完成了工作:)