2017-05-21 16 views
13

Bir bildirim hattındaki değişkenler arasındaki değişkenleri nasıl geçirebilirim?Deklarasyonlu Jenkins boru hattındaki aşamalar arasındaki değişkenleri nasıl geçirebilirim?

Komut dizili bir boru hattında, geçici bir dosyaya yazma işleminin ardından dosyayı bir değişkene okuyup topladım.

Bunu nasıl bir bildirim hattında yapabilirim?

E.g. Bir kabuk eyleminin yarattığı bir değişkeni temel alarak farklı bir iş oluşturmayı tetiklemek istiyorum. Eğer (bir komut dosyası ihtiyacınız değer oluşturmaya şey olduğundan) bir dosyayı kullanmak istiyorsanız

stage("stage 1") { 
    steps { 
     sh "do_something > var.txt" 
     // I want to get var.txt into VAR 
    } 
} 
stage("stage 2") { 
    steps { 
     build job: "job2", parameters[string(name: "var", value: "${VAR})] 
    } 
} 
+0

ve okumak parçası btw shash/unstash yoktur. – sebkraemer

cevap

17

:

pipeline { 
    agent { label 'docker' } 
    stages { 
    stage('one') { 
     steps { 
     sh 'echo hotness > myfile.txt' 
     script { 
      // trim removes leading and trailing whitespace from the string 
      myVar = readFile('myfile.txt').trim() 
     } 
     echo "${myVar}" // prints 'hotness' 
     } 
    } 
    stage('two') { 
     steps { 
     echo "${myVar}" // prints 'hotness' 
     } 
    } 
    // this stage is skipped due to the when expression, so nothing is printed 
    stage('three') { 
     when { 
     expression { myVar != 'hotness' } 
     } 
     steps { 
     echo "three: ${myVar}" 
     } 
    } 
    } 
} 
yazma için
+0

Bu değişkeni "when {}" ile kullanabilir miyiz? –

+0

evet; gösterilecek yanıt güncellendi. – burnettk

+0

sadece 'def myVar 'komutunu kullanabilir ve daha sonra config'ınızı dosyanın en üstünde olmak istiyorsanız' echo $ {myVar} 'ile kullanabilirsiniz;) – wegginho

İlgili konular