如何将多个管道脚本包括在Jenkinsfile中



我有一个如下

的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')
                )               
            }
        }

将" "添加到串联。为我完成了工作:)

最新更新