程序猿进阶(四)--Jenkins篇(pipeline语法)

脚本式流水线和声明式流水线

脚本式流水线

node('name'){
	stage('Source'){
		git 'git@xxx.git'
	}
	stage('Compile'){
		pwd()
		do something()
	}
}
优点:
  • 更少的代码段落和弱规范要求
  • 更强大的程序代码能力
  • 更像编程代码程序
  • 传统的流水线即代码模型,用户熟悉并向后兼容性
  • 更灵活的自定义代码操作
  • 能够构建更复杂的工作流和流水线
缺点:
  • 要求更高编程水平
  • 首先与Groovy语言和环境
  • 和传统Jenkins模型有很大差异
  • 与声明式流水线相比,同一工作流会更复杂

声明式流水线

pipeline{
	agent{label 'name'}
	stages{
		stage('Source'){
			steps{
				git 'git@xxx.git'
			}
		}
		stage('Compile'){
			steps{
				pwd()
				do something()
			}
		}
	}
}
优点:
  • 结构化,贴近Jenkins Web的表单形式
  • 高可读性
  • 可以通过图形化界面自动生成
  • 段落可以映射到常见的Jenkins概念,比如通知
  • 更友好的语法检查和错误识别
  • 提升流水线间的一致性
缺点:
  • 迭代较弱
  • 开发不完善
  • 结构严格
  • 难以处理复杂的任务

说明

声明式流水线的agent和脚本式流水线的node都是指运行的节点,对于没有配置节点(默认只有master节点),使用node{}(把label省略掉)和agent any即可
修改节点需要在工作台->系统管理->节点管理处进行

构建配置

配置示例

proprties([
	pipelineTriggers([
		upstream(
			threshold:hudson.model.Result.SUCCESS,
			upstreamProjects:'name'
		)
	])#在名为name的项目构建成功后构建
	pipelineTriggers([cron('0 9 * * 1-5')])
	#这里表示每周一到周五,上午9点的定时任务
	pipelineTriggers([cron('*\20 * * * *')])
	#*/<value>表示每隔,这里表示每隔20分钟
	pipelineTriggers([cron('*H H(0-7) * * *')])
	#H(s,e)随机选择从s到e的任意值,这里表示0点到7点的任意时间
	#定时任务
	#五个参数分别表示分钟、小时、每月第几天、第几个月、每周第几天(0和7表示周日)
	pipelineTriggers([pollSCM('H H 1,15 1-11 *')])
	#除了12月之外,每个月的第1,15天扫描一次SCM变化
	pipelineTriggers([cron('H H(9-16)/2 * * 1-5')])
	#每两
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值