我正在遵循使用Travis 部署到AWS CodeDeploy的指南。在这些文档中,他们指向了一个包含以下代码的.travis.yml示例:
deploy:
- provider: s3
access_key_id: AKIAJ4XZHIMNKP3WGGHQ
secret_access_key: &1
secure: <key>
local_dir: dpl_cd_upload
skip_cleanup: true
on: &2
repo: travis-ci/cat-party
bucket: catparty-codedeploy
- provider: codedeploy
access_key_id: AKIAJ4XZHIMNKP3WGGHQ
secret_access_key: *1
bucket: catparty-codedeploy
key: latest.zip
bundle_type: zip
application: CatPartyDemoApplication
deployment_group: ProductionDemoFleet
on: *2
Run Code Online (Sandbox Code Playgroud)
我已经完成了这项工作并了解了流程(首先将zip文件上传到S3,然后将文件部署到CodeDeploy)。我苦苦挣扎的是语法:特别是on: &2本s3节中的行,以及on: *2本codedeploy节中的部分。这些行在做什么?
我问是因为我想修改此配置,以根据提交是否具有给定标签来将其部署到其他CodeDeploy组,例如:
on:
tags: true
all_branches: true
condition: "$TRAVIS_TAG =~ ^release.*$"
Run Code Online (Sandbox Code Playgroud)
...但是由于我不清楚on: *2执行的操作(并且无法在文档中找到),因此我不确定该如何进行。有小费吗?
这些符号及其带来的功能是YAML本身的一部分。支持它们以减少YAM1文件中的重复工作。
例如,此部分以&stores为前缀,将后续结构存储为name的引用2。所以2现在参考repo: travis-ci/cat-party。
on: &2
repo: travis-ci/cat-party
参考名称也可以是字母数字字符集,以使内容更具表达力。
另一方面,*然后将其用于在要重用的位置解析该引用。
因此,在以下部分中,YAML解析器会将解析为*2先前存储的结构repo: travis-ci/cat-party:
on: *2
此功能可节省您的复制,这在.travis.yml文件的多个方面都很方便。
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |