jenkins - 如何拥有模块化的 Jenkins 流水线?
问题描述
我想创建一个 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
}
}
}
我有两个主要问题:
- 如何将这些文件链接到库?
- 如何配置 Jenkins Pipeline,让 Jenkins 不仅知道主 JenkinsFile,
mainPipeline
还知道子模块?
解决方案
我不建议将您的 Jenkinsfile 分成单独的文件,因为有更好的选择:
- 您可以使用Pipeline: Build Step 插件在您的管道中执行作业。使用它来执行将被多个作业使用的阶段。例如,我使用它在一个常见的部署作业中部署我的应用程序。
- 您可以使用自己的库扩展 Jenkins,您可以为每个作业或所有作业加载这些库。请参阅:使用共享库进行扩展
对于这两种方法,定义 Jenkinsfiles/Groovy 脚本都可以来自 SCM。
如果您真的想从项目路径加载脚本,请检查此问题。如果您想使用项目路径中的多个 Jenkinsfiles,您可以在配置作业时添加更多 Jenkinsfiles 作为“项目识别器”。
推荐阅读
- python - 如何找到数据框中向量之间的余弦相似度?
- django - django.core.exceptions.ImproperlyConfigure:找不到 GDAL CentOS
- arrays - 如何在表格视图中快速向每个部分和行显示数组数据
- python - discord.py 在 def 函数中添加特定时间倒计时
- java - 握手消息(X)的大小超过了最大允许大小(32768):spring boot resttemplate
- javascript - 用 Jest 测试“console.log”
- ios - 无法在核心数据中订购自定义对象
- reactjs - React router 6,使用Navigate如何获取路径名
- python - 通过 Python 发送电子邮件
- javascript - 如何在 DHTMLX 甘特图中添加父栏并仅使用 javascript 刷新特定的父栏