Puis-je vérifier si la variable d'Environnement existent ou non dans Jenkinsfile
Je suis en cours d'exécution Multibranch pipeline pour mon projet.
Le comportement de Jenkinsfile devrait changer selon la gâchette.
Il y a deux événements qui triggeres le pipeline 1. Pousser l'événement 2. Pull Request.
Je suis en train de vérifier la variable d'Environnement 'CHANGE_ID' ('CHANGE_ID' sera disponible pour les Tirer sur Demande seulement).Référence .
Donc, si le pipeline est triggred en poussant le cas et Si vérifier la CHANGE_ID variable " elle lève une exception (code fonctionne très bien si le pipeline est déclenchée par la Demande d'extraction).
Code:
stage('groovyTest'){
node('mynode1') {
if (CHANGE_ID!=NULL){
echo "This is Pull request"
}else{
echo "This is Push request"
}
}
}
Erreur:
groovy.lang.MissingPropertyException: No such property: CHANGE_ID for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:5)
at ___cps.transform___(Native Method)
Comment puis-je vérifier le CHANGE_ID' de la variable existe ou pas dans Jenkinsfile?
OriginalL'auteur kishs1991 | 2017-08-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le vérifier avant de l'utiliser:
De la doc
Content que ça vous aide, vous pouvez accepter ma réponse (*≧∪≦)
Si vous ne travaillez pas la balise de script peut être utilisé: "script { if(env.CHANGE_ID){"
pour être complet, la valeur de
env.DOES_NOT_EXIST
estnull
OriginalL'auteur aristotll
C'est comment il devrait ressembler à un déclarative pipeline:
Pour exécuter une étape seulement quand pas la construction d'une PR:
OriginalL'auteur friederbluemle