• 37-Jenkins-多分支流水线



    前言

    • 在实际中,需要多分支同时进行开发。如果每个分支都创建一个Jenkins项目,比较多余。所以本篇来学习下多分支流水线的使用

    多分支流水线能力

    • 在代码仓库中,每个新分支都有自己单独的工作流水线(job)。
    • 每个工作流水线都记录了对应分支的构建和变更历史。
    • 可以自定义设置流水线随着分支的删除而删除或修建。
    • 通过重写父属性(如果需要),可以灵活地单独配置分支流水线属性

    创建多分支流水线

    • New Item :新建多分支流水线如下图

    在这里插入图片描述

    多分支流水线配置

    General

    在这里插入图片描述

    Branch Sources

    • 设置代码仓库地址,也就是要选择分支的仓库地址
      在这里插入图片描述

    Build Configuration

    • 脚本路径:各分支存放Jenkinsfile的路径
      在这里插入图片描述

    Scan Multibranch Pipeline Triggers

    • 触发策略:Jenkins根据一定的策略去代码仓库扫描分支,如果有新分支就创建一个以分支名命名的任务,如果发现有分支被删除了,就删除相应的Jenkins任务,如下所示为5分钟扫描一次
      在这里插入图片描述

    Orphaned Item Strategy

    • 孤儿策略:如果在代码仓库中删除了release分支,那么在多分支任务页面上,该分支在Jenkins上的任务也应该被删除。至于什么时候删除,取决于下次分支扫描的时间。如果代码仓库中的分支被删除了,而Jenkins上的相应任务没有被删除,那么这个任务就被称为孤儿任务。设置如下图所示

    Days to keep old items: 保留多少天
    Max#of old items to keep:最多保留多少个孤儿任务

    在这里插入图片描述

    查看多分支流水线

    • 发现3个分支,自动创建3个job(如未出现job,可点击立即San多分支流水线)
      在这里插入图片描述

    gitlab触发与多分支

    对于GitLab来说,并没有Jenkins多分支pipeline的概念,所以GitLab只会触发Jenkins进行分支索引 ( branch index ) ,Jenkins可根据索引结果决定是否执行构建。对于多分支pipeline,Jenkins GitLab插件只监听push事件,不监听merge request事件。

    而在Jenkins多分支pipeline项目的设置页面中,是找不到GitLab配置项的。只能通过修改Jenkinsfile来实现,在triggers指令中加入gitlab配置。

    triggers {
    	gitlab(
    		triggerOnPush: true,
    		triggerOnMergeRequest: true,
    		triggerOpenMergeRequestOnPush: "never",
    		triggerOnNoteRequest: true,
    		noteRegex: "Jenkins please retry a build",
    		skipWorkInProgressMergeRequest: true,
    		ciSkip: true,
    		setBuildDescription: true,
    		addNoteOnMergeRequest: true,
    		addCiMessage: true,
    		addVoteOnMergeRequest: true,
    		acceptMergeRequestOnSuccess: true,
    		pendingBuildName: "${env.JOB_NAME}",
    		cancelPendingBuildsOnUpdate: true,
    		//branchFilterType: 'All',
    		branchFilterType: "NameBasedFilter",
    		includeBranchesSpec: "master,release-*",
    		//excludeBranchesSpec: "",
    		)
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    Java程序员编写代码的技巧
    DCU集群搭建虚拟环境方法简介
    一起Talk Android吧(第三百七十九回:让ViewPager一屏幕显示三页)
    【C++航海王:追寻罗杰的编程之路】string类
    K线形态识别_身怀六甲和十字胎
    vue3子调父页面的方法
    17 STL - 函数对象
    如何通过内网穿透实现公网远程连接Redis数据库
    碳化硅纳米线 SiC纳米线
    升级Win11后Office无法验证此产品的许可证怎么办?
  • 原文地址:https://blog.csdn.net/IT_heima/article/details/126319417