2017-11-19 3 views
1

Ich möchte ähnliche Stufen Jenkins Pipeline hinzuzufügen, so etwas wie:jenkins groovy mit Schleife

pipeline { 
     stage('Publish archives to Artifactory - common') { 
     steps { 
      dir('android/build/artifacts_output/common') { 
       script { 
        def server = Artifactory.server 'artifactory' 
         def uploadSpec = """{ 
          "files": [ 
          { 
           "pattern": "*.*", 
           "target": "my-repo/1.0.0/common" 
          } 
          ] 
         }""" 

        server.upload(uploadSpec) 
       } 
      } 
     } 
    } 

    stage('Publish archives to Artifactory - core') { 
     steps { 
      dir('android/core') { 
       script { 
        def server = Artifactory.server 'artifactory' 
         def uploadSpec = """{ 
          "files": [ 
          { 
           "pattern": "*.*", 
           "target": "my-repo/1.0.0/core" 
          } 
          ] 
         }""" 

        server.upload(uploadSpec) 
       } 
      } 
     } 
    } 
} 

Ich brauche ein paar weitere Stufen, wie dies für verschiedene Module hinzuzufügen. Gibt es einen besseren Weg, es zu tun, wie Stufen mit Loop hinzuzufügen, anstatt diesen Code viele Male zu kopieren?

Dieser Ausschnitt ist in Groovy geschrieben. Ich bin nicht vertraut genug mit der Syntax von Groovy ...

EDIT

Auch dies wäre similar question

Antwort

1

Ein möglicher Ansatz fand eine Liste von Konfigurationsobjekten zu schaffen, und dann über die iterieren Liste

def list = ["Conf 1", "Conf 2", "Conf 3", "Conf Last"] 

list.each { stageName -> 
    node { 
     stage(stageName) { 
      println(stageName) 
     } 
    } 
} 

In Ihrem Fall benötigen Sie lieber Karten oder andere Arten von Parameterobjekten in der Liste.

+0

Vielen Dank! Alles, was ich brauche, ist, die Stufen in 'Knoten' zu setzen, und sie werden zur Pipeline hinzugefügt? – ElyashivLavi