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