2017-04-07 117 views
1

我遵循使用Travis的指南到deploy to AWS CodeDeploy。在這些文檔它們指向包含以下代碼.travis.yml exampleTravis CI部署腳本中的符號* 1或&2是什麼意思?

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行以及codedeploy部分中的on: *2部分。這些線是幹什麼的?

我問,因爲我想修改該配置部署到不同的CodeDeploy組取決於是否提交有一個給定的標籤,如:

on: 
    tags: true 
    all_branches: true 
    condition: "$TRAVIS_TAG =~ ^release.*$" 

...但因爲我不清楚是什麼on: *2正在做(並且無法在文檔中找到它),我不確定如何繼續。有小費嗎?

回答

2

這些符號和它們帶來的功能是YAML本身的一部分。他們支持減少YAMl文件中的重複工作。

例如,本部分前綴&將後續結構存儲爲名稱爲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文件的幾個方面可以得心應手。

+0

啊當然 - 現在看起來很明顯。謝謝! –