step by step YAML 复用
yaml文件适合用来描述软件测试过程的步骤。当不同类型的CI过程集中在一个yaml文件时,首先碰到的一个问题是:大量重复的步骤如何进行复用?
举个例子:
stage1:run_it:exec:- A- B- C- D1stage2:run_it:exec:- A- B- C- D2
显然,ABC步骤重复了。如果确定对于不同stage,ABC都是必备步骤。那么可以如下处理:
首先,将相同的步骤抽取成step:
stage1:prepare:exec:- A- B- Crun_it:exec:- D1stage2:prepare:exec:- A- B- Crun_it:exec:- D2
然后,设定锚点标记:
common: &commonprepare:exec:- A- B- Cstage1:prepare:exec:- A- B- Crun_it:exec:- D1stage2:prepare:exec:- A- B- Crun_it:exec:- D2
最后,使用锚定标记替换公共部分:
common: &commonprepare:exec:- A- B- Cstage1:<<: *commonrun_it:exec:- D1stage2:<<: *commonrun_it:exec:- D2
关于yaml的锚定标记,哈希合并可以参考:http://zh.wikipedia.org/wiki/YAML
step by step YAML 复用相关推荐
- ActionScript 3.0 Step By Step系列(四):来自面向对象开发之前的呐喊:“学会写可重用的代码”...
增强代码的可重用能力,从创建可重用的代码开始,可重用的代码则是通过从现有代码中重构加以封装,使其成为功能单一的可复用代码块.这句话笼统点说便是"封装"或"抽象" ...
- Followme Devops step by step
接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程! 实验环境需要 ...
- 【Step By Step】将Dotnet Core部署到Docker下
一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...
- python写一个通讯录step by step V3.0
python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...
- C#2.0实例程序STEP BY STEP--实例二:数据类型
C#2.0实例程序STEP BY STEP--实例二:数据类型 与其他.NET语言一样,C#支持Common Type Sysem(CTS),其中的数据类型集合不仅包含我们熟悉的基本类型,例如int, ...
- 文本分类step by step(二)
(注:如有转载请标明作者:finallyliuyu, 和出处:博客园) <文本分类 step by step(一)> 在<文本分类step by step(一)>中,我们从处理 ...
- 数据库设计Step by Step (9)——ER-to-SQL转化
2019独角兽企业重金招聘Python工程师标准>>> 引言:前文(数据库设计 Step by Step (8)--视图集成)讨论了如何把局部ER图集成为全局ER图.有了全局ER图后 ...
- ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题...
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是一种功能非常强大的编程方法,立意于创建软件重用代码,以类为基础去思考编程问题. ActionScript 3 ...
- NHibernate Step by Step:序篇 (转)
原文出处:http://www.cnblogs.com/abluedog/archive/2006/04/15/375676.html 原文作者:abluedog 很久以前,你可能习惯了connect ...
- Python 调试:step into/step out/step over 的区别
Python 调试:step into/step out/step over 的区别: 首先在PyCharm 程序中设置 " 断点 ",后点击右上角的Debug 按钮进入调试程序状 ...
最新文章
- 求n!中含有某个因子个数的方法
- OpenGL中的轨迹球问题
- Linux系统中使用shell判断磁盘是否格式化的方法
- python教程从入门到实践第八章_python:从入门到实践--第八章:函数
- iptables01
- atom配置python环境_Python编程:用VScode配置Python开发环境
- C语言计算总成绩和平均成绩
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
- java 原型模式的应用_java中原型模式详解和使用方法
- 引入网易云音乐播放器卡片
- 圈子圈套,何谓成功?
- Katana 项目入门
- 为什么重写equals方法必须要重写hashCode方法
- Emby识别都是英文海报
- 服务器关闭微软小娜,win10小娜总是自动弹出怎么禁止-禁止win10小娜自动弹出的方法 - 河东软件园...
- smalidea动态调式Android smali代码
- Portraiture中文版最新mac3.5版win5.0版插件介绍
- 学计算机电脑选台式还是笔记本,选台式机还是笔记本?台式机和笔记本电脑选购技巧...
- html5如何自动复制文字,H5实现移动端复制文字功能
- 带你了解了解Future和CompletableFuture
热门文章
- 源码安装tensorflow
- 【TensorFlow2.0】(3) 索引与切片操作
- Kimera实时重建的语义SLAM系统
- 剑指offer:面试题14- II. 剪绳子 II
- 编译OpenCV 2+ with CUDA 9+
- 机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)
- JS加法函数,用来得到精确的加法结果(说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果)
- 完整的虚幻引擎超级课程:从初学者到专家
- djangorestframework怎么这么好用!
- Github上的PHP资源汇总大全