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