yaml文件适合用来描述软件测试过程的步骤。当不同类型的CI过程集中在一个yaml文件时,首先碰到的一个问题是:大量重复的步骤如何进行复用?
举个例子:
stage1:
run_it:
exec:
- A
- B
- C
- D1
stage2:
run_it:
exec:
- A
- B
- C
- D2
显然,ABC步骤重复了。如果确定对于不同stage,ABC都是必备步骤。那么可以如下处理:
首先,将相同的步骤抽取成step:
stage1:
prepare:
exec:
- A
- B
- C
run_it:
exec:
- D1
stage2:
prepare:
exec:
- A
- B
- C
run_it:
exec:
- D2
然后,设定锚点标记:
common: &common
prepare:
exec:
- A
- B
- C
stage1:
prepare:
exec:
- A
- B
- C
run_it:
exec:
- D1
stage2:
prepare:
exec:
- A
- B
- C
run_it:
exec:
- D2
最后,使用锚定标记替换公共部分:
common: &common
prepare:
exec:
- A
- B
- C
stage1:
<<: *common
run_it:
exec:
- D1
stage2:
<<: *common
run_it:
exec:
- D2
关于yaml的锚定标记,哈希合并可以参考:http://zh.wikipedia.org/wiki/YAML
相关推荐
yaml文件 yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门yaml 入门...
ingress的yaml文件
CIYamlAnalyzeCI插件Yaml解析与step排序
pyyaml模块在python中用于处理yaml格式数据,主要使用yaml.safe_dump()、yaml.safe_load()函数将python值和yaml格式数据相互转换。当然也存在yaml.dump()、yaml.load()函数,同样能实现数据转换功能,只是官方不太...
yaml文件 Yaml 是⼀种所有编程语⾔可⽤的友好的数据序列化标准。语法和其他⾼阶语⾔类似,并且可以简单表达字 典、列表和其他基本数据类型的 形态。语法规则如下: 1. ⼤⼩写敏感。 2. 使⽤缩进表⽰层级关系。 3. 使...
c++版yaml库yaml-cpp
MatLab的YAML库文件
yaml-cpp-yaml-cpp-0.6.0.tar.gz
kubernetes的calico网络插件的yaml
spring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot...
yamlcpp读写yaml文件 主要是使用Yaml::Node和Yaml::emitter来实现
yaml-cpp library works
yaml specification.pdf
recommended.yaml
YAML Ain’t Markup Language (YAML™) Version 1.2 3rd Edition, Patched at 2009-10-01
YAML.framework, 对 Objective C的适当的YAML支持 基于推荐的libyaml,基于 用于 objective-c的 YAML.framework基于C LibYAML 库( http://pyyaml.org/wiki/LibYAML )的by Simonov 。YAML.framework 为 YAML ( de/)
yaml-cpp库的编译&安装 一、 下载 二、 解压缩 三、 编译&安装 四、 使用说明
iKuuu_V2.yaml
c#读取本地的yaml文件并获取数据。也可以自定义yaml数据格式。可以使用C#语言读取,也可以使用C++.Python.和opencv获取yaml文件数据。
Laravel开发-yaml 为Laravel4配置添加yaml文件支持的包