Comment obtenir le nom de la tâche sur un groovy paramètre dynamique dans Jenkins
J'ai besoin d'obtenir le nom de la tâche dans cet exemple, j'ai un code pour obtenir la valeur précédente de la construction de paramètre avec le code
jenkins.model.Jenkins.instance.getItem("nameOfJob").lastBuild.getBuildVariables().get("NameOfParameter");
Le Nom de la Tâche maintenant est codé en dur, j'ai besoin d'obtenir ce nom sera le nom de la Tâche en cours, Comment ne puis-je pas Faire?
Merci
Vous devez vous connecter pour publier un commentaire.
Groovy paramètres Dynamiques n'ont pas accès à l'habitude des variables d'environnement que le reste de l'jenkins travail est privé de.
Ici est un travail pirater pour obtenir le nom de la tâche:
def regexp= "executing ([^ ]+) .*"
Si vous exécutez une étape dans un projet, alors il existe une variable d'environnement JOB_NAME
qui en groovy, vous pouvez accéder à
Si vous le souhaitez générer post puis vérifier cette réponse Comment obtenir des informations spécifiques sur la version actuelle du projet de Jenkins avec Groovy?
Que par la question, pour avoir accès à l'Jenkins nom de la Tâche à l'étape d'installation, vous devez utiliser le EnvInject plugin qui prend en charge groovy - il besoin de retourner une carte
C'est la sortie lorsque j'utilise un shell de travail pour faire écho au nouvel environnement
Vous devez faire de la manipulation de chaîne de séparer le travail et construire
System.getenv().each{println it}
alors il n'a pas de liste de la JENKINS environnement.println "currentJob -->${currentJob}" println "currentBuild --> ${currentBuild}" [currentJob: currentJob, currentBuild: currentBuild]
Suivant fonctionne pour moi de le uno-choix du paramètre plugin script Groovy (avant de le construire est lié):
Si vous êtes intéressé par le nom de la tâche, puis:
jenkinsProject
?jenkinsProject
import hudson.model.*
etthis.binding.build.project.name
Thread[Executor #0 for master : executing jobname #11,5,main]
, essayez donc ceci:def myJobName = (Thread.currentThread().toString() =~ /executing (\S*)/)[0][1]
Tout d'abord assurez-vous d'utiliser l'option "Exécuter le système de script Groovy" à l'étape (pas "Exécuter le script Groovy").
La réponse la plus simple pour obtenir le nom de travail est:
Et il suffit d'utiliser
JOB_NAME
comme vous le feriez dans un script shell.Mais depuis que vous avez réellement besoin d'une instance de travail alors utiliser:
MAIS, pour obtenir les paramètres pour la génération en cours (fait en cours d'exécution à l'instant), il suffit d'utiliser:
Noms de classe dans Jenkins documentation sont un peu difficile, alors voici quelques conseils: