gitlab-ci.yml关键字(六)inherit、retry 、interruptible
创始人
2024-05-03 12:48:29
0

inherit

示例

inherit:default

选择当前作业继承的全局默认值

可能的取值

  • true(默认)或false启用或禁用所有默认关键字的继承
  • 要继承的特定默认关键字列表
default:retry: 2image: ruby:3.0interruptible: truejob1:script: echo "This job does not inherit any default keywords."inherit:default: falsejob2:script: echo "This job inherits only the two listed default keywords. It does not inherit 'interruptible'."inherit:default:- retry- image

上面例子中,全局default 中定义了三个全局变量分别为:retry、image、interruptible。
在job1中不适用全局变量,在job2中仅使用retry、image两个全局变量

inherit:variables

用于控制全局变量inherit:variables继承的关键字。
可能的取值:

  • true(默认)或false启用或禁用所有全局变量的继承
  • 要继承的特定变量列表
variables:VARIABLE1: "This is variable 1"VARIABLE2: "This is variable 2"VARIABLE3: "This is variable 3"job1:script: echo "This job does not inherit any global variables."inherit:variables: falsejob2:script: echo "This job inherits only the two listed global variables. It does not inherit 'VARIABLE3'."inherit:variables:- VARIABLE1- VARIABLE2

interruptible

interruptible: true启用后,在为同一分支上的新更改启动管道时,将取消正在运行的作业。比如说每次提交都会触发代码扫描任务,在很短的时间内连续提交了两次,第一次的任务还没跑完,第二次触发时会中断第一次的任务。

如果设置了interruptible: false 在开始作业后无法取消后续作业

示例

stages:- stage1- stage2- stage3step-1:stage: stage1script:- echo "Can be canceled."interruptible: truestep-2:stage: stage2script:- echo "Can not be canceled."step-3:stage: stage3script:- echo "Because step-2 can not be canceled, this step can never be canceled, even though it's set as interruptible."interruptible: true

在上面例子中,如果此时再次触发流水线,则可能有两种结果

  1. 已取消,如果只是step-1正在运行或挂起。
  2. 未取消,step-2开始后。

retry

使用retry用于配置作业失败时重试的次数。如果未定义,则默认为0并且作业不会重试。

当一个作业失败时,该作业最多再处理两次。
可能的取值

  • 0(默认) / 1 / 2

示例

test:script: rspecretry: 2

retry:when

使用retry:when with retry:max仅针对特定的失败案例重试作业。 retry:max是最大重试次数,例如retry,可以是 0、1或2。
可能的取值:

  • always:重试任何失败(默认)
  • unknown_failure:失败原因不明时重试
  • script_failure:脚本失败时重试
  • api_failure: 重试 API 失败
  • stuck_or_timeout_failure:作业卡住或超时时重试
  • runner_system_failure:如果运行器系统出现故障(例如,作业设置失败),请重试
  • runner_unsupported:如果Runner不受支持,请重试
  • stale_schedule:如果无法执行延迟的作业,请重试
  • job_execution_timeout:如果脚本超过为作业设置的最大执行时间,则重试
  • archived_failure:如果作业已存档且无法运行,请重试
  • unmet_prerequisites:如果作业未能完成先决条件任务,请重试
  • scheduler_failure:如果调度程序未能将作业分配给运行器,则重试
  • data_integrity_failure:如果检测到结构完整性问题,请重试

示例

test:script: rspecretry:max: 2when: runner_system_failure

如果存在系统故障以外的故障,则不会重试该作业。

test:script: rspecretry:max: 2when:- runner_system_failure- stuck_or_timeout_failure

也可以使用数组来登记多个条件

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...