0
votes

Jenkins Pipeline déclarative Définition des variables dérivées des paramètres

J'utilise un pipeline déclaratif dans un jenkinsfile, mais je voudrais dériver certaines variables d'un paramètre. Par exemple, donné: xxx

Je voudrais ajouter un bloc comme: xxx

tel que je peux utiliser des variables ailleurs dans le pipeline. Par exemple: xxx

etc ..

mais le script est illégal dans les sections Paramètre, Environnement et Agent. Il ne peut être utilisé que dans les étapes seulement.

J'ai besoin d'utiliser le paramètre dans le bloc d'agent et je souhaite vous éviter de me répéter où les variables sont utilisées dans différentes étapes.

est là Un moyen sain d'y parvenir? Mes préférences dans l'ordre sont les suivantes:


0 commentaires

4 Réponses :


1
votes

jamais vraiment utilisé le pipeline déclaratif Jenkins avant, mais je pense que la façon dont vous vous référez à des paramètres est incorrecte est incorrecte?

Je pense que cela pourrait être: $ {param ..platform} code> ou .Platform code> au lieu de param code>. P>

alors quelque chose comme le ci-dessous peut-être peut-être? P>

pipeline {
    agent any
    stages {
        stage('example') {
            steps {
                script {
                    switch(${params.Platform}) {
                        ...
                    }
                }
            }
        }
    }
}


2 commentaires

Le problème n'est pas la syntaxe de l'interrupteur (qui est réduite pour moi être nouveau à Groovy) mais où je peux le mettre. J'ai besoin du paramètre du bloc d'agent. Un bloc de script est-il légal là-bas?


Je vois. Je n'ai pas réalisé que c'était votre problème. Y a-t-il besoin de vos paramètres d'avoir les chiffres en eux? Par exemple, quelque chose comme cela peut fonctionner: nom de fichier "src / main / docker / jenkins- $ plate-forme.dockerfile" Si vous modifiez le paramètre uniquement pour permettre uniquement les options de "Debian" et "Centos".



-1
votes

Ceci est un exemple que j'ai dans la production xxx


2 commentaires

Mais où dans un pipeline déclaratif, pouvez-vous placer pour que le paramètre puisse être utilisé pour définir l'agent?


@Bruce Adams, j'ai raté la partie d'être un pipeline déclaratif, j'utilise des pipelines scriptés.



0
votes

Je pense que la clé de résolution de votre problème est la déclaration de vos variables. N'utilisez pas def si vous voulez que votre variable soit accessible à partir d'autres étapes.

Voici un exemple de solution pour votre problème: xxx < / p>


0 commentaires

0
votes

Qu'est-ce qui est définitivement possible sur Windows: xxx


0 commentaires