web-dev-qa-db-fra.com

Paramètre dynamique dans Jenkinsfile?

Comment puis-je utiliser le Jenkins Dynamic Plugin dans un Jenkinsfile?

Ce que je recherche, c'est un extrait de Jenkinsfile qui:

  • Active le Build with Parameters option dans le travail Jenkins
  • Lorsqu'il est sélectionné, un script qui remplit une liste pouvant être utilisée Dynamic Choice Parameters est renseigné et l'utilisateur verra une liste déroulante.

En essayant:

  1. Pipeline syntax dans l'éditeur Jenkins
  2. Sélection de properties: Set job properties comme Sample step
  3. Sélection de This project is parameterized
  4. En utilisant Dynamic Choice Parameter
  5. Entrez des valeurs pour Name, Choice Script, Remote Script etc
  6. Generate Pipeline Script

J'obtiens le modèle suivant:

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

c'est-à-dire que le script de pipeline généré ne contient pas les données que j'ai saisies à l'étape 5. au dessus. Comment puis-je modifier parameters pour que le nom du paramètre, les choix, etc. soient visibles pour l'utilisateur?


Jenkins version: 2.19.3 Dynamic Parameter Plugin version: 0.2.0

10
matsev

il n'y a plus besoin du plugin dynamique Jenkins. Utilisez simplement le choix normal ou le paramètre chaîne et faites mettre à jour la ou les valeurs par du code groovy.

#!/bin/groovy

def envs = loadEnvs();

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

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

Si vous utilisez le paramètre de choix, sachez que vous devez fournir une chaîne dans laquelle les valeurs sont séparées par une nouvelle ligne.

Par exemple:

"a\nb\nc"

Si vous avez vraiment besoin d'un plugin, alors votez sur ce problème JENKINS-42149 .

7
Karel Striegel