web-dev-qa-db-fra.com

Comment obtenir le nom de nœud de la génération actuelle dans Jenkins en utilisant Groovy

J'ai un travail de pipeline en cours d'exécution à Jenkins et je veux connaître le nom du nœud sur lequel il s'exécute. Existe-t-il un moyen d'obtenir le nom du nœud à partir du script Groovy du travail?

J'ai essayé le code ci-dessous:

print currentBuild.getBuiltOn().getNodeName()

l'erreur est:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified method org.jenkinsci.plugins.workflow.job.WorkflowRun getBuiltOn

J'ai également essayé ceci:

def build = currentBuild.build()
print build.getExecutor().getOwner().getNode().getNodeName()

mais le résultat est ''.

9
nanci

Il existe une variable d'environnement 'NODE_NAME' qui l'a.

Vous pouvez y accéder comme ceci:

echo "NODE_NAME = ${env.NODE_NAME}"

Lorsque vous modifiez un travail de pipeline, vous pouvez trouver toutes les variables d'environnement disponibles en accédant au lien d'aide "Syntaxe de pipeline" (à gauche de la page), puis recherchez la section "Variables globales" et cliquez sur la "Référence des variables globales". . Il existe une section "env" qui répertorie les variables d'environnement disponibles.

19
macg33zr