2016-11-23 21 views
5

'u Jenkinsfile numaralı telefondan nasıl kullanabilirim?Jenkinsfile'da Dinamik Parametre?

  • Jenkins Seçildiğinde
  • , Dynamic Choice Parameters kullanılabilecek bir listesini doldurur bir komut dosyası doldurulur iş ve Build with Parameters seçeneğini etkinleştirir:

    Ne arıyorum bir Jenkinsfile o pasajı olduğunu kullanıcı bir açılır liste görür.

çalışırken:

  1. Pipeline syntaxDynamic Choice Parameter
  2. Name değerlerini girin kullanma This project is parameterized
  3. seçilmesi Sample step
  4. olarak properties: Set job properties seçilmesi Jenkins editörü
  5. yılında, Choice Script, Remote Script vb
  6. Generate Pipeline Script

aşağıdaki şablonu olsun:

properties([ 
    parameters([ 
     <object of type com.seitenbau.jenkins.plugins.dynamicparameter.ChoiceParameterDefinition> 
    ]), 
    pipelineTriggers([]) 
]) 

yani ben yukarıdaki adımda 5. girdiğiniz veri içermiyor oluşturulan boru hattı komut dosyası. parameters'u nasıl değiştirebilirim, böylece parametre adı, seçimler, vs. kullanıcı tarafından görülebilir mi?


Jenkins sürümü: 2.19.3 Dinamik Parametre Eklenti sürümü: 0.2.0

cevap

3

Jenkins Dinamik Eklentisi için artık gerek artık yoktur. Sadece normal seçim veya dize parametresini kullanın ve groovy koduyla güncellenen değerlere sahip olun.

#!/bin/groovy 

def envs = loadEnvs(); 

properties([ 
    parameters([ 
     choice(choices: envs, description: 'Please select an environment', name: 'Env') 
    ]) 
]) 

node { 
    try { 
     stage('Preparation'){ 
... 

Seçim parametresini kullanırsanız, değerlerin yeni bir satırla ayrıldığı bir dize belirtmeniz gerektiğini unutmayın. Örneğin

:

"a\nb\nc" 

gerçekten eklentisi gerekiyorsa, o zaman bu konuda JENKINS-42149 oy.

+0

Jenkins'in hangi sürümünde? Ben 2.3 koşuyorum ve hata " –

+0

2.32.3 için güncellendi ve şu anda çalışıyor gibi görünüyor" adımları arasında "böyle bir DSL yöntemi 'parametreleri' hata olsun. –

+0

Çalışır, ancak yeni parametre oluşturur ve yapı parametrelerindeki değerleri devam ettirir, eğer gerçek değerler (örneğin, maven sürümleri listesi) değişti -parameters değerleri güncellenmediyse, loadEnvs() her seferinde uygulanmaz veya bu şekilde kokmaz gibi görünür. –