2017-02-17 10 views
4

Ist es möglich, mehrere Zweige, die die gleichen Schritte innerhalb Bitbucket Pipelines haben, zu kombinieren?Bitbucket Pipelines - mehrere Zweige mit gleichen Schritten

ex: Die Teams, an denen ich arbeite, verwenden einen von zwei Namen für ihre Review-Zweige, entweder "rev" oder "staging". In beiden Fällen werden dieselben Schritte für die Veröffentlichung auf unserem Überprüfungsserver verwendet. Gerade jetzt werden die Zweige einzeln aufgerufen.

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

aber es könnte etwas sein wie

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

Antwort

4

Versuchen:

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

wenn der YAML-Parser durch das Projekt verwendet, um die Spezifikation folgt dann der Wert für Schlüssel staging wird das gleiche sein als das für rev (das ist die Verwendung von YAML-Anker und Alias-Funktionalität)

+0

Cool, funktioniert in der Tat. (Zumindest bei Verwendung der richtigen Bb-Pipeline-Syntax, was im ursprünglichen Beitrag nicht der Fall ist.) – BlueM

+0

@BlueM Können Sie das korrigierte Syntaxbeispiel als Alternative zu meiner Antwort hinzufügen? – Anthon

+0

Fertig. Und danke für deine Lösung. – BlueM

2

Wie von Anthon in einem Kommentar zu seiner Antwort angefordert, das ist seine perfekte Lösung, aber mit der richtigen YAML Struktur wie erwartet von Bitbucket Pipelines:

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

Diese besteht nicht Validierung: https://bitbucket-pipelines.atlassian.io/validator –

+0

Ich weiß. Bei der Verwendung des Validators sind mir verschiedene Syntaxen begegnet, die * * * funktionieren, aber als ungültig gemeldet werden. Offensichtlich verwendet der Validator nicht dieselbe Codebasis/Sprache/Bibliothek zum Parsen wie die tatsächliche Pipeline. – BlueM

+0

Nur versucht, diese Syntax und bitbucket selbst gab einen Validierungsfehler. – Snaver

4

Eine durch Kommata getrennte Liste in geschweiften Klammern zu funktionieren scheint:

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

Ich denke, diese Lösung ist sauberer als die anderen. Ich benutze es wie folgt: ''{feature/*, fix/*}'' weil alle 'feature'- und' fix'-Zweige die gleichen Schritte durchlaufen. – ordonezalex

0

Mit Bitbucket 5.8, um manuell zu können, um die Pipeline auslösen ich dieses Format verwenden musste:

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

Also im Grunde nur getrennt Zweig Komma Liste, die die gleiche Pipeline benötigen

Verwandte Themen