【从零开始学极狐gitlab】07作业关键字allow_failure、when、timeout(二) #JIHULAB101
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相关推荐
- 两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践
本文来自: 彭亮 极狐(GitLab) 高级产品经理 郭旭东 极狐(GitLab) 资深创新架构师 舒文斌 极狐(GitLab) 高级网站可靠性工程师 最近几天,ChatGPT 真是杀疯了 ! 相信大 ...
- 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告
沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...
- 极狐GitLab CI/CD关键词(一):脚本script,前置脚本before_script,后置脚本after_script
简介 本篇文章详细介绍了极狐GitLab CI/CD中script,before_script,与after_script三个关键词. 对于一个作业script内容是必填项(trigger 作业除外) ...
- 极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!
沿袭我们月度发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务.免费的 GitOps 功能.SAML 群组链接的 API 维护.高级密码复杂度要求等. 这些只是该版本中 6 ...
- 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态
2022年4月11日,极狐(GitLab)(以下简称"极狐公司")正式宣布A轮融资签约完成,融资金额达数亿元人民币.本轮融资分两阶段进行,第一阶段由淡马锡领投,Alpha Prim ...
- 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案
2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...
- 极狐GitLab硬实力助力中国开源生态建设
近两年,我国开源生态发展势头迅猛,在推动信息技术产业创新,促进产业协作,加快各行业数字化进程等方面的作用日益突出.为满足各类企业级用户技术创新与敏捷迭代的需求,9月23日,极狐GitLab在京举办了& ...
- 使用 GPG 为极狐GitLab git commit 签名
目录 git commit 签名 GPG key 生成 使用 GPG 为极狐GitLab git commit 签名 在极狐GitLab 中添加 GPG public key 配置 Git 进行 Gi ...
- 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...
最新文章
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
- python能表示多大整数_Python无法表示99999999999999999999这样大的整数。
- grep / egrep
- 恢复 outlook express中的附件按钮
- Http协议简易分析
- VUE项目 格林威治时间转换为北京时间
- python 图像分割_Python中的图像分割(第2部分)
- 用java做打字训练测试软件,《打字训练测试软件-Java课程设计》.doc
- 关于Windows10上OneNote粘贴保留代码格式问题(困惑我许久的问题终于解决)
- Vue项目设置ico
- 个人站——联系我页面设计
- html阅读是什么,阅读.html
- 1.MySQL面试宝典
- fork与vfork
- Ultra Edit使用技巧
- 【面试题】面试官:vue的这些原理你了解吗?
- 从头开始学MySQL--------内连接、左连接、右连接(4)
- Traceroute(路由追踪) --- 的原理及实现
- Linux新手训练营--命令大全(持续更新中)
- 魅族 linux 定时器,魅族已哭晕,乌班图(Ubuntu)系统一加抢了首发