如何实现模块化的Jenkins Pipeline?

3
我希望创建一个Jenkins声明性流水线,并希望将流水线结构设置如下:
  mainPipeline.groovy
  stage1.groovy
  stage2.groovy
  stage3.groovy

mainPipeline看起来像下面这样:

 pipeline {

      stages {
         stage('stage1') {
            // Call method from the file Stage1.groovy
         }
         stage('stage2') {
            // Call method from the file Stage2.groovy
         }
      }
 }

我有两个主要问题:

  1. 我如何将这些文件链接到库中?
  2. 我如何配置Jenkins Pipeline,使Jenkins不仅知道主要的JenkinsFile(即mainPipeline),还知道子模块?
1个回答

2
我不建议将Jenkinsfile拆分为多个文件,因为有更好的选择:
  • 您可以使用Pipeline: Build Step plugin在流水线中执行作业。使用此选项执行将由多个作业使用的阶段。例如,我使用此选项在通用部署作业中部署我的应用程序。
  • 您可以使用自己的库扩展Jenkins,可以将其加载到每个作业或所有作业中。请参见:扩展共享库
对于这两种方法,定义Jenkinsfiles/Groovy脚本可以来自SCM。
如果您确实想从项目路径加载脚本,则请查看此问题。如果要从项目路径中使用多个Jenkinsfiles,则只需在配置作业时添加更多的Jenkinsfiles作为“项目识别器”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接