1、allow_failure

作用

顾名思义,允许失败,job内使用

示例

stages:- build- test- deploy
build_job:stage: buildscript: - echo "build ok"
test_job1:stage: testscript: - echo "test1 ok"
build_job2:stage: testscript: - echo "test2 okallow_failure: true
deploy_job:stage: deployscript: - echo "deploy ok"

效果

配置了allow_failure为true后及时当前job失败,也不会导致整个流水线失败

2、when

作用

用于配置job运行的条件,默认为on_success,即前一个job成功了再执行本job。其它还有如下:

  • on_success(默认):仅当早期阶段的所有作业都成功或具有 allow_failure: true 时才运行作业。
  • manual:仅在手动触发时运行作业。
  • always:无论早期阶段的作业状态如何,都运行作业。
  • on_failure:只有在早期阶段至少有一个作业失败时才运行作业。
  • delayed:作业的执行延迟指定的持续时间。
  • never:不要运行作业。只能在 rules 部分或 workflow: rules 中使用。

示例1: manual

如线上的应用希望自动构建和测试,但发布由人工控制

stages:- build- test- deploy
build_job:stage: buildscript: - echo "build ok"
test_job:stage: testscript: - echo "test ok"
deploy_job:stage: deployscript: - echo "deploy ok"when: manual

效果

deploy的job需要手动点击才能执行

示例2: on_failure

有这样一个场景,流水线执行失败通知到钉钉,执行成功不通知

stages:- build- test- deploy- send_message
build_job:stage: buildscript: - echo "build ok"
test_job:stage: testscript: - echo "test ok"
deploy_job:stage: deployscript: - echo "deploy ok"
send_2_dingtalk:stage: send_messagescript:- echo "pipeline fail"when: on_failure

正常效果

最后的job被跳过

异常效果

在test_job中人为造一个错误的shell使其失败
配置了on_failure条件的只需前面任意一个job失败即可,不必是紧挨着的job

补充示例

当失败的job配置了allow_failure为true后,即使这个job失败了,也会按照成功了处理

stages:- build- test- deploy- send_message
build_job:stage: buildscript: - echo "build ok"
test_job:stage: testscript: - echo "test okallow_failure: true
deploy_job:stage: deployscript: - echo "deploy ok"
send_2_dingtalk:stage: send_messagescript:- echo "pipeline fail"when: on_failure

补充效果

可以看到:由于test_job配置了allow_failure为true,即使这个job失败了,也按照成功处理,执行了deploy_job,跳过了send_2_dingtalk

3、timeout

作用

用于限制job的运行时间,过长时主动失败。如下三种写法等效

  • 3600 seconds
  • 60 minutes
  • one hour

示例

stages:- build- test- deploy- send_message
build_job:stage: buildscript: - sleep 35timeout: 30s

效果

参考:
https://docs.gitlab.cn/jh/ci/yaml/#variables
https://www.bilibili.com/video/BV18y4y1S7VC?share_source=copy_web&vd_source=e7cb77928d906ea4d27387974d073399

【从零开始学极狐gitlab】07作业关键字allow_failure、when、timeout(二) #JIHULAB101相关推荐

  1. 两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践

    本文来自: 彭亮 极狐(GitLab) 高级产品经理 郭旭东 极狐(GitLab) 资深创新架构师 舒文斌 极狐(GitLab) 高级网站可靠性工程师 最近几天,ChatGPT 真是杀疯了 ! 相信大 ...

  2. 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告

    沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...

  3. 极狐GitLab CI/CD关键词(一):脚本script,前置脚本before_script,后置脚本after_script

    简介 本篇文章详细介绍了极狐GitLab CI/CD中script,before_script,与after_script三个关键词. 对于一个作业script内容是必填项(trigger 作业除外) ...

  4. 极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!

    沿袭我们月度发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务.免费的 GitOps 功能.SAML 群组链接的 API 维护.高级密码复杂度要求等. 这些只是该版本中 6 ...

  5. 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态

    2022年4月11日,极狐(GitLab)(以下简称"极狐公司")正式宣布A轮融资签约完成,融资金额达数亿元人民币.本轮融资分两阶段进行,第一阶段由淡马锡领投,Alpha Prim ...

  6. 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案

    2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...

  7. 极狐GitLab硬实力助力中国开源生态建设

    近两年,我国开源生态发展势头迅猛,在推动信息技术产业创新,促进产业协作,加快各行业数字化进程等方面的作用日益突出.为满足各类企业级用户技术创新与敏捷迭代的需求,9月23日,极狐GitLab在京举办了& ...

  8. 使用 GPG 为极狐GitLab git commit 签名

    目录 git commit 签名 GPG key 生成 使用 GPG 为极狐GitLab git commit 签名 在极狐GitLab 中添加 GPG public key 配置 Git 进行 Gi ...

  9. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统

    KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...

最新文章

  1. mysql监控 hp_0066 使用PHP和MySQL实现学生分数信息管理
  2. linux驱动开发字符设备,linux驱动开发(三) 字符设备驱动框架
  3. 成功解决AttributeError: 'DataFrame' object has no attribute 'reshape'
  4. 成本管理4个过程及相关重点
  5. redis在windows10上跑起来
  6. 怎么开通手机信息服务器,如何用手机建立网站
  7. linux sort多磁盘排序,linux shell sort多字段排序
  8. java循环do while_Java中for、while、do while三种循环语句的区别介绍
  9. prototype、JQuery中跳出each循环的方法
  10. qpsk调制matlab仿真,QPSK调制解调仿真
  11. 饿百零售开放平台,测试账号饿了么显示该商家还没有上传商品
  12. excepted one 0f #, =>at line16,column 16(byte 311)
  13. SQLite崩溃处理
  14. 雷达的工作原理示意图_雷达基本理论与基本原理
  15. Open Drain vs Push Pull
  16. VNCTF2021 几个题解writeup
  17. 文献阅读与写作(一)
  18. ESXi+黑群晖 由静态ip改回DHCP
  19. 生活与管理中的18条实用定律
  20. thinkpad装linux无线网卡驱动,ThinkPad E530 Fedora 20 下无线网卡驱动的安装

热门文章

  1. Android广播接收者使用总结
  2. 数字空间中的二值形态学
  3. 影视剪辑,什么是蒙太奇,蒙太奇的含义
  4. android 字母索引 listview
  5. HANA用户权限设置
  6. 一般网站有哪些常见漏洞?
  7. 人生遐思:所谓的人生到底是什么呢
  8. EXCEL一般使用技巧总结
  9. 计算机excel求四分位数,如何在Excel中计算一组数字的百分位数和四分位数?
  10. mac外接显示器 竖屏 黑苹果_借人气问一个黑苹果外接显示器的问题