2016-05-06 4 views
2

Ich habe diesen SchrittMerge dsl Job Schalen in nur einem

def createJob(def jobName, 
      def branchName) { 


    job(jobName) { 

     steps { 
     shell('export AWS_DEFAULT_REGION=eu-west-1') 
     shell('$(aws ecr get-login --region eu-west-1)') 
     shell('docker build -t builder -f ./images/'+branchName+'/Dockerfile .') 
     shell('docker tag -f '+branchName+':latest *******.dkr.ecr.eu-west-1.amazonaws.com/'+branchName+':latest') 
     shell('docker push *********.dkr.ecr.eu-west-1.amazonaws.com/'+branchName+':latest)') 
    } 
    } 
} 

Wie kann ich alle in nur einer Schale nur noch hinzufügen?

Ich habe versucht, auf diese Weise

shell(''' 
      export AWS_DEFAULT_REGION=eu-west-1 
      $(aws ecr get-login --region eu-west-1) 
      docker build -t builder -f ./images/'+branchName+'/Dockerfile . 
      ''') 

Aber dann die Variable als String branch Es ist behandelt. Grüße.

Antwort

2

Verwenden Sie stattdessen doppelte Anführungszeichen, die Interpolation unterstützen (einfache Anführungszeichen und einzelne dreifache Anführungszeichen nicht). Dann können Sie ${} verwenden Variablen im String

shell(""" 
      export AWS_DEFAULT_REGION=eu-west-1 
      $(aws ecr get-login --region eu-west-1) 
      docker build -t builder -f ./images/${branchName}/Dockerfile . 
     """) 

einfügen Für weitere Informationen, um die groovy documentation on string interpolation sehen.

Verwandte Themen