travis-ci - Travis CI 部署脚本中的符号 *1 或 &2 是什么意思?

标签 travis-ci

我正在按照使用 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/

相关文章:

django - 告诉 Travis 跳过测试,但继续将其包含在我的主测试套件中?

java - 使用 mysql 在 travis 上运行测试

c++ - 如何在 Travis CI 上使用 C++17 安装 clang?

linux - 如何使用 Travis CI 将多个 docker 容器部署到 gcloud?

android - 特拉维斯 | Android : Platform tools v26. 0.2 未安装

reactjs - 使用 Travis for React 如何不将警告视为错误

php - Travis mysql服务报错

github - 如何使用 Saltslack 通过 Docker 设置 SonarQube,以及如何从 CI 中使用它

android - 构建 Android 总是为每个构建下载依赖项

android - travis ci 构建失败 - 原因 : PermGen space