jenkins同时允许多个流水线的配置
一、在 Jenkins 上允许多个流水线并行执行
在 Jenkins 上允许多个流水线并行执行,主要有两处设置需要查看或调整:
-
Jenkins 主节点/Agent 的执行器(Executors)数量
- 进入「Manage Jenkins(管理 Jenkins)」→「Configure System(系统设置)」页面,找到 “# of executors”(或“Number of executors”)配置,即可设置主节点最多可同时执行的构建数。
- 如果你的 Jenkins 有其他 Agent,也需要在各 Agent(Node)的配置页面上查看或修改执行器数量。
-
具体 Job/流水线自身的并发设置
- 对于 Freestyle 项目:在对应 Job 的「Configure」页面中,查看是否勾选了 “Execute concurrent builds if necessary”;若取消勾选,则该 Job 不支持并发构建。
- 对于 Pipeline 项目:默认并发数由可用执行器决定。但如果 Jenkinsfile(或 Pipeline 配置)中使用了
disableConcurrentBuilds()
等方法,则会禁止并发运行;如需允许并发构建,可去除相应配置。
只要 Jenkins 的执行器数量充足,并且你的具体 Pipeline 没有禁用并发,就可以同时运行多个流水线。
二、具体配置意思
以下是这些配置项的含义和作用:
-
# of executors
- 当前节点(或者主节点)的可并行执行的任务数。如果设置为 12,意味着这个节点(或主节点)可以同时运行最多 12 个 Job/流水线。
-
Labels
- 给此节点打的标签,用于区分或筛选节点。其它项目在配置「节点/执行环境」时,可以指定标签来选择合适的节点运行。
-
Usage
- 指定 Jenkins 如何使用该节点的资源。
- 常见的有「Use this node as much as possible(尽可能多地使用此节点)」或「Only build jobs with label expressions matching this node(仅构建标签匹配此节点的 Job)」。
- 就是让 Jenkins 决定什么时候使用该节点。
-
Quiet period
- 工作在启动前的等待时间(单位:秒)。如果你将此配置设为 5,那么当一个 Job 被触发后,Jenkins 会等待 5 秒才真正开始执行。常用于合并多个短时间内频繁触发的构建。
-
SCM checkout retry count
- 如果在拉取代码(SCM checkout)时出现错误,Jenkins 重试的次数。若设置为 0,则表示不进行重试。
-
Default view
- 设置 Jenkins 主界面默认显示的视图。每个 Jenkins 实例可以有多个视图,便于对项目进行分类或分组,这里可以选择想要默认展示的那个视图。
-
Restrict project naming
- 是否对创建 Project/Job 时的名称进行限制(例如限制特殊字符等)。如果勾选,会在你创建新 Job 时对名称做额外的格式或字符校验。
在 Jenkins 的「SCM Polling」配置区域,“Max # of concurrent polling” 用来限制 同时进行的 SCM 轮询(polling) 的数量。它的作用如下:
- 是否对创建 Project/Job 时的名称进行限制(例如限制特殊字符等)。如果勾选,会在你创建新 Job 时对名称做额外的格式或字符校验。
- 当有多条 Job/流水线都配置了 轮询 SCM 以检查代码库更新时,这些轮询操作会在某些时间点同时触发。
- 如果设置为 10,就表示最多同时跑 10 个轮询进程,超过这个数量的轮询请求会排队等待,避免因为过多并发操作而给 SCM 服务器或 Jenkins 本身带来过高负载。
通常如果你的 Jenkins 上有很多要轮询的项目,而 SCM 服务器性能有限,或者不希望因为频繁轮询导致高并发,就可以通过这个设置来控制轮询并发度。
三、流水线记录每隔5天自动删除一次,在哪里配置?
在 Jenkins 中,让流水线构建记录在一定周期后(如 5 天)自动删除,通常有以下两种配置方式:
-
在具体 Job(流水线)配置中启用 “Discard Old Builds”
- 打开对应的 Pipeline (或 Freestyle)项目的「Configure」页面。
- 找到 “Discard old builds”(丢弃旧的构建)选项,勾选后,在 “Days to keep builds” 中填入
5
(或其他天数),便可在构建历史中只保留最近5
天的记录,超出部分会自动删掉。 - 如果是 Multibranch Pipeline,也可以在分支配置的「Property」或脚本中设置类似策略。
-
在 Pipeline 脚本中使用
buildDiscarder
如果使用声明式 Pipeline,可以在Jenkinsfile
中的options
块里声明,例如:pipeline { options { buildDiscarder( logRotator( daysToKeepStr: '5', numToKeepStr: '10' // 最多保留多少次构建,可按需设置 ) ) } ... }
这样脚本执行时就会自动应用相应的丢弃策略,每次构建完成后删除超过 5 天的旧构建日志。
注意:不同 Jenkins 版本界面细节略有差异,但核心思路都是在Job 配置或Pipeline 脚本中启用“丢弃旧构建”并设定需要保留的天数或构建数。
在 Multibranch Pipeline 或 组织文件夹(Organization Folder) 类型的项目中,Jenkins 会根据 SCM(如 Git)中的分支自动创建或移除对应的构建任务。Orphaned Item Strategy 主要用于管理 “孤立”(或“被删掉的分支对应的”)Job,该配置项的含义如下:
-
Discard old items
打开后表示要丢弃(删除)不再存在于 SCM 的分支所对应的 Job(即孤立的分支任务)。 -
Days to keep old items
表示最多保留这些孤立 Job 多少天,超过这个天数就会被自动删除。 -
Max # of old items to keep
表示最多只保留多少个这样的孤立 Job,如果数量超过这个上限,就会把多余的自动删除。
这些设置可以避免 Jenkins 上堆积过多无用的旧分支构建任务,从而节省资源并保持视图整洁。