pipeline option指令
一.简介
option指令用于配置整个jenkins pipeline本身的选项,根据具体的选项不同,可以将其放在pipeline块或者stage块中。
options 指令允许从流水线内部配置特定于流水线的选项。 流水线提供了许多这样的选项, 比如 buildDiscarder,但也可以由插件提供, 比如 timestamps.
二.参数
buildDiscarder
作用域:只能在pipline块使用
buildDiscardr 保存最近历史构建记录的数量。当pipeline执行完成后,会在硬盘上保存记录,发布的内容和构建执行日志,如果长时间不清理会占用大量空间,设置此选项后会保存配置的数量。
简单例子:
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
stages {
stage('test-a') {
steps {
echo 'test'
}
}
}
}
发布本次之前有17次的历史记录,本次虽然代码简短,但经过几秒才发布成功。那是因为在删除其它的历史记录,最后只会保留3次。

checkoutToSubdirectory
作用域:pipline块
注意:因实验版本不支持此指令,稍后进行测试
Jenkins从版本控制库拉取源码时,默认下载到当前job的根目录下,例如job名叫test-pipeline,则后续代码下载到/var/lib/jenkins/workspace/test-pipeline/xx项目
配置后则为/var/lib/jenkins/workspace/test-pipeline/foo/xx项目
options {
checkoutToSubdirectory('foo')
}
disableConcurrentBuilds
作用域:pipeline块
同一个pipeline,Jenkins默认可以同时点击多次,并发执行。这样会消耗资源,并造成发布失败等问题。

配置并发锁定,可以在同时只允许一个执行,在和代码仓库进行联动的时候容易遇到,同时分支进行多次提交。
options {
disableConcurrentBuilds()
}
options { disableConcurrentBuilds() }

newContainerPerStage
作用域:pipeline块
注意:暂未实验
当agent为docker或dockerfile时,指定在同一个Jenkins节点上,每个stage都分别运行在一个新的容器中,而不是所有stage都运行在同一个容器中。
options {
newContainerPerStage()
}
retry
作用域:pipeline块或者stage块
当发生失败时进行重试,可以指定整个pipeline的重试次数。需要注意的是,这个次数是指总次数,包括第一次失败。
options {
retry(3)
}
timeout
作用域:stage块
如果pipeline执行时间过长,超出设置的timeout时间,Jenkins将中止pipeline。
以下例子中以小时为单位,还可以把SECONDS(秒),MINUTES(分钟)为单位。
options {
timeout(time: 1, unit: 'HOURS')
}
skipDefaultCheckout
作用域:stage块
在agent指令中,跳过从源代码控制中检出代码的默认情况。
options {
skipDefaultCheckout()
}
skipStagesAfterUnstable
作用域:stage块
一旦构建状态变得UNSTABLE,就跳过该阶段。
options {
skipStagesAfterUnstable()
}
timestamps
作用域:stage块或者steps块
注意:需要安装Timestamper插件
在stage块声明,每个步骤执行完,日志里都会打印执行时间。
options {
timestamps()
}
在steps块执行,包含内的每个步骤执行完,日志里都会打印执行时间。
timestamps {
echo '这是第一个被执行的 stage.'
}
pipeline option指令的更多相关文章
- pipeline when指令
目录 一.简介 二.选项 单独判断 条件组合 一.简介 when指令允许pipeline根据给定的条件,决定是否执行阶段内的步骤.when指令必须至少包含一个条件.when指令除了支持branch判断 ...
- pipeline parameters指令
目录 一.简介 二.类型 参数类型 多参数 一.简介 参数化pipeline是指通过传参来决定pipeline的行为.参数化让写pipeline就像写函数,而函数意味着可重用.更抽象.所以,通常使用参 ...
- pipeline post指令
目录 一.介绍 二.参数说明 三.使用实例 一.介绍 post步骤包含的是在整个pipeline或阶段完成后一些附加的步骤.post步骤是可选的,所以并不包含在声明式pipeline最简结构中,但这并 ...
- Docker的Jenkins Pipeline工作流
原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模 ...
- Pipeline 有什么好处,为什么要用 pipeline?
答:可以将多次 IO 往返的时间缩减为一次,前提是 pipeline 执行的指令之间没有 因果相关性.使用 redis-benchmark 进行压测的时候可以发现影响 redis 的 QPS 峰值的一 ...
- 前端学HTTP之内容协商
前面的话 一个URL常常需要代表若干不同的资源.例如那种需要以多种语言提供其内容的网站站点.如果某个站点有说法语的和说英语的两种用户,它可能想用这两种语言提供网站站点信息.理想情况下,服务器应当向英语 ...
- haproxy的丰富特性简介
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 面试中程序员常见的Redis"刁难"问题,值得一读!
导读 在程序员面试过程中Redis相关的知识是常被问到的话题.作为一名在互联网技术行业打击过成百上千名的资深技术面试官,总结了面试过程中经常问到的问题.十分值得一读. Redis有哪些数据结构? 字符 ...
- Redis考察点解析
目录 1. Redis数据结构 1. 常用数据结构 2. 高级数据结构 2. Redis分布式锁 1. Redis分布式锁原理 2. 如果在setnx之后执行expire之前进程意外crash或者要重 ...
随机推荐
- 性能优化 | Go Ballast 让内存控制更加丝滑
关于 Go GC 优化的手段你知道的有哪些?比较常见的是通过调整 GC 的步调,以调整 GC 的触发频率. 设置 GOGC 设置 debug.SetGCPercent() 这两种方式的原理和效果都是一 ...
- requests之代理的使用
import requests # 访问url url = 'http://www.baidu.com/s?' # 请求头 headers = { 'User-Agent': 'Mozilla/5.0 ...
- PLSQL 删表 恢复
1.查看你删除的是哪张表(SQL 中的时间是删表时的时间 (我删表的时间 大概是:2019-08-16 08:47:00 之后 )): select * from user_recy ...
- PAT A1107——并查集
Social Clusters When register on a social network, you are always asked to specify your hobbies in ...
- [gym102798F]Skeleton Dynamization
考虑对于第$i$层$x$与第$i+1$层所对应的点$y$,点$p$在前$i$层中当且仅当$p$到$x$比$p$到$y$距离小 由此,考虑枚举第一层的一个点以及对应到第二层的边,通过bfs就可以确定第一 ...
- Cortex-A系列中断
1. 回顾STM32系统 1.1 中断向量表 ARM芯片冲0x00000000,在程序开始的地方存放中断向量表,按下中断时,就相当于告诉CPU进入的函数.描述很多个中断服务函数的表. 对于STM32来 ...
- 明明pip安装python的模块了,pycharm还是找不到的解决方案
以前pycharm的安装包和python的环境一直都不能融合在一起,到了今天才知道,原来他们都是有自己的工作环境的 自己的工作环境(虚拟解释器)和安装python的工作环境(基本解释器)不是一个环境, ...
- Linux终端使用aplay播放wav
Linux终端使用aplay播放wav aplay是一个ALSA的声卡命令行soundfile录音机的驱动程序. 在linux下可以使用下面命令来查看用法: man aplay 所以可以使用来播放.w ...
- 如何理解Casbin的权限控制
概念: Casbin是什么? Casbin是一个访问控制框架,可以支持多种访问控制模型(如ACL.RBAC.ABAC等) 目的: 我们最终想要实现的效果: 可以控制某一个人/角色(sub)能否对某个资 ...
- 感谢 git
今天对程序大修了一下,顺便把所有算例测试了一遍,突然发现二维浅水方程有些算例出现了明显的错误. 这次突然出现的错误让我有点措手不及,因为一直没有修改过浅水方程求解器,所以这些算例很久没有测试过了.硬着 ...