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. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
  2. python能表示多大整数_Python无法表示99999999999999999999这样大的整数。
  3. grep / egrep
  4. 恢复 outlook express中的附件按钮
  5. Http协议简易分析
  6. VUE项目 格林威治时间转换为北京时间
  7. python 图像分割_Python中的图像分割(第2部分)
  8. 用java做打字训练测试软件,《打字训练测试软件-Java课程设计》.doc
  9. 关于Windows10上OneNote粘贴保留代码格式问题(困惑我许久的问题终于解决)
  10. Vue项目设置ico
  11. 个人站——联系我页面设计
  12. html阅读是什么,阅读.html
  13. 1.MySQL面试宝典
  14. fork与vfork
  15. Ultra Edit使用技巧
  16. 【面试题】面试官:vue的这些原理你了解吗?
  17. 从头开始学MySQL--------内连接、左连接、右连接(4)
  18. Traceroute(路由追踪) --- 的原理及实现
  19. Linux新手训练营--命令大全(持续更新中)
  20. 魅族 linux 定时器,魅族已哭晕,乌班图(Ubuntu)系统一加抢了首发

热门文章

  1. 获取周一到周日的日期
  2. 转载《士兵突击》观后杂感
  3. CSS的两种盒子模型
  4. 2012年9月ITbrand手机品牌排行榜
  5. 移动端软键盘弹起遮挡输入框问题的解决方案
  6. 解决win10安装之后本地搜索框不能用
  7. 【Python Intelhex- HEX文件修改器工具】
  8. 在线等 急!!!!!
  9. legacy引导gpt分区_legacy支持gpt吗
  10. 5-14 电话聊天狂人 (25分)