目录
option指令用于配置整个jenkins pipeline本身的选项,根据具体的选项不同,可以将其放在pipeline块或者stage块中。
options 指令允许从流水线内部配置特定于流水线的选项。 流水线提供了许多这样的选项, 比如 buildDiscarder,但也可以由插件提供, 比如 timestamps.
作用域:只能在pipline块使用
buildDiscardr 保存最近历史构建记录的数量。当pipeline执行完成后,会在硬盘上保存记录,发布的内容和构建执行日志,如果长时间不清理会占用大量空间,设置此选项后会保存配置的数量。
简单例子:
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
stages {
stage('test-a') {
steps {
echo 'test'
}
}
}
}
发布本次之前有17次的历史记录,本次虽然代码简短,但经过几秒才发布成功。那是因为在删除其它的历史记录,最后只会保留3次。
作用域:pipline块
注意:因实验版本不支持此指令,稍后进行测试
Jenkins从版本控制库拉取源码时,默认下载到当前job的根目录下,例如job名叫test-pipeline,则后续代码下载到/var/lib/jenkins/workspace/test-pipeline/xx项目
配置后则为/var/lib/jenkins/workspace/test-pipeline/foo/xx项目
options {
checkoutToSubdirectory('foo')
}
作用域:pipeline块
同一个pipeline,Jenkins默认可以同时点击多次,并发执行。这样会消耗资源,并造成发布失败等问题。
配置并发锁定,可以在同时只允许一个执行,在和代码仓库进行联动的时候容易遇到,同时分支进行多次提交。
options {
disableConcurrentBuilds()
}
options { disableConcurrentBuilds() }
作用域:pipeline块
注意:暂未实验
当agent为docker或dockerfile时,指定在同一个Jenkins节点上,每个stage都分别运行在一个新的容器中,而不是所有stage都运行在同一个容器中。
options {
newContainerPerStage()
}
作用域:pipeline块或者stage块
当发生失败时进行重试,可以指定整个pipeline的重试次数。需要注意的是,这个次数是指总次数,包括第一次失败。
options {
retry(3)
}
作用域:stage块
如果pipeline执行时间过长,超出设置的timeout时间,Jenkins将中止pipeline。
以下例子中以小时为单位,还可以把SECONDS(秒),MINUTES(分钟)为单位。
options {
timeout(time: 1, unit: 'HOURS')
}
作用域:stage块
在agent指令中,跳过从源代码控制中检出代码的默认情况。
options {
skipDefaultCheckout()
}
作用域:stage块
一旦构建状态变得UNSTABLE,就跳过该阶段。
options {
skipStagesAfterUnstable()
}
作用域:stage块或者steps块
注意:需要安装Timestamper插件
在stage块声明,每个步骤执行完,日志里都会打印执行时间。
options {
timestamps()
}
在steps块执行,包含内的每个步骤执行完,日志里都会打印执行时间。
timestamps {
echo '这是第一个被执行的 stage.'
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章