2017-02-17 39 views
4

是否可以合併具有相同步驟的多個分支在bitbucket流水線中?例如:Bitbucket流水線 - 具有相同步驟的多個分支

例如:我所從事的團隊使用兩個名稱中的一個作爲他們的評論分支,「rev」或「staging」。無論哪種方式,我們都使用相同的步驟發佈到我們的評論服務器。現在分支機構被分開呼叫。

pipelines: 
    branches: 
      rev: 
       steps: 
        - echo 'step' 
      staging: 
       steps: 
        - echo 'step' 

,但會不會是像

pipelines: 
    branches: 
      rev|staging: 
       steps: 
        - echo 'step' 

回答

4

嘗試:

pipelines: 
    branches: 
      rev: &sharedsteps 
       steps: 
        - echo 'step' 
      staging: *sharedsteps 

如果在項目中使用的YAML解析器遵循規範然後鍵staging值將是相同的因爲rev(這是使用YAML的錨和別名功能)

+0

很酷,確實有效。 (至少在使用正確的Bb管道語法時,原始文章中不是這種情況。) – BlueM

+0

@BlueM您可以添加更正的語法示例作爲我的答案的替代方案嗎? – Anthon

+0

完成。並感謝您的解決方案。 – BlueM

2

作爲對他的回答評論的要求安通,這是他的完美的解決方案,但如預期到位桶管道正確的YAML結構:

pipelines: 
    branches: 
    rev: &sharedsteps 
     - step: 
      script: 
      - echo 'step' 
    staging: *sharedsteps 
+0

這沒有通過驗證: https://bitbucket-pipelines.atlassian.io/validator –

+0

我知道。當使用驗證器時,我遇到* do *工作的各種語法,但報告爲無效。顯然,驗證器不會像實際的管道一樣使用相同的代碼庫/語言/庫進行解析。 – BlueM

+0

只是試圖這個語法,bitbucket本身給了一個驗證錯誤。 – Snaver

4

出現在大括號以逗號分隔的列表的工作:

pipelines: 
    branches: 
    rev,staging: 
     - step: 
     script: 
      - echo 'step' 

所以基本上只是逗號分隔的分支:

pipelines: 
    branches: 
    '{rev,staging}': 
     - step: 
     script: 
      - echo 'step' 
+0

我認爲這個解決方案比其他解決方案更清潔。我像這樣使用它:''{feature/*,fix/*}''因爲所有'feature'和'fix'分支都經歷了相同的步驟。 – ordonezalex

0
爲了能夠手動觸發管我不得不使用這種格式

有了到位桶5.8需要相同管道的清單

相關問題