如何将jenkins任务快速处理,导入xmind

背景

公司项目中,通过配置jenkins job控制任务执行顺序。
由于执行的job是一级控制一级,具体到某一个job时候,并不能确认是配置在哪一级job中。举个例子:比如有三个jobjob1,job2,job3,这三个job并不是具体实现,它里面配置的job才是具体实现。故,当排查一个具体job是否编排了任务,不能一下子定位到,可能需要在job1,job2,job3各个任务搜索一遍,方可确认。若有job1,job2,job3类似job有10个,那也是挺繁琐的过程,于是想着能否放在思维导图中,具体某个job直接一搜索就知道job所属,以及是否配置正确。
如下:

pipeline {
	agent none
	stages {
	stage('并行计算2.1') {
		parallel{
		    
			stage ('acct_wt_user_1') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_max_holddays_stock_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '1']
				]
				}
			}}}
			stage ('acct_wt_user_2') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_max_holddays_stock_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '2']
				]
				}
			}}}
			stage ('acct_wt_user_3') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_max_holddays_stock_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '3']
				]
				}
			}}}
			stage ('acct_wt_user_4') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_max_holddays_stock_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '4']
				]
				}
			}}}
		    stage ('acct_wt_user_5') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_trade_num_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '1']
				]
				}
			}}}
			
			
		}
	}
	stage('并行计算2.2') {
	    parallel{
	        stage ('acct_wt_user_1') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_trade_num_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '2']
				]
				}
			}}}
			stage ('acct_wt_user_2') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_trade_num_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '3']
				]
				}
			}}}
			stage ('acct_wt_user_3') { steps{ script{
				if (step < '5200') {
				build job: 'acct_wt_user_trade_num_inc', parameters: [
					[$class: 'StringParameterValue', name: 'begin_date', value: begin_date],
					[$class: 'StringParameterValue', name: 'end_date', value: end_date],
					[$class: 'StringParameterValue', name: 'interval_type', value: '4']
				]
				}
			}}}
	    }
	}
	}
}

分析

把所有任务放在思维导图中,肯定是最合适不过,也好维护,job的执行结构顺序也清晰。最笨的方法就是在xmind中输入一个个job。但job近千个,实现完全是可行的,但是工作机械繁琐,而且容易出错。这个方法直接pass掉。

实现

稍加研究,觉得下述方法值得一试:
1、拷贝jenkins配置项具体信息至notpad++,数据内容如上描述。
2、通过正则处理:
正则表达式为:

[\s|\S]*?(\('(.+?)'\))

替换成

$2\n

替换结果为:
reg
此时,已经提取出每个stage名,接下来稍作拷贝即可:
xmind
如上图,如此一处理,逻辑很清晰。以后即使job变动,再重新处理下也不耗时。需要注意的是,例子中并行计算2.x下面的job,拷贝后,在ximind的上一层粘贴,那么下一层会按照\n分隔,达到图式效果。算是一点点技巧吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值