我正在按照使用 Travis 的指南来 deploy to AWS CodeDeploy 。在这些文档中,他们指向 .travis.yml
example其中包含以下代码:
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
我已经开始工作并了解流程(首先将 zip 文件上传到 S3,然后将该文件部署到 CodeDeploy)。我正在努力解决的是语法:特别是 s3
部分中的 on: &2
行,以及 on: *2
部分codedeploy
部分。这些线路在做什么?
我问这个问题是因为我想修改此配置以根据提交是否具有给定标签来部署到不同的 CodeDeploy 组,例如:
on:
tags: true
all_branches: true
condition: "$TRAVIS_TAG =~ ^release.*$"
...但是因为我不清楚 on: *2
正在做什么(并且在文档中找不到它),所以我不确定如何继续。有什么建议吗?
最佳答案
这些符号及其带来的功能是 YAML 本身的一部分。支持它们以减少 YAMl 文件中的重复工作。
例如,以 &
为前缀的此部分将后续结构存储为名称为 2
的引用。因此 2
现在引用 repo: travis-ci/cat-party
。
上:&2
仓库:travis-ci/cat-party
引用名称也可以是字母数字字符集,以使内容更具表现力。
另一方面,*
用于解析您想要重用的引用。
因此,在下一节中,YAML 解析器会将 *2
解析为之前存储的结构:repo: travis-ci/cat-party
:
上:*2
此功能可以避免重复,这在 .travis.yml
文件的多个方面都很方便。
关于travis-ci - Travis CI 部署脚本中的符号 *1 或 &2 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43274977/