Lorsque je charge un autre fichier groovy à Jenkinsfile, cela me montre une erreur suivante.
"Classe de contexte requise Hudson.FilePath est absent peut-être oublié d'entourer le code avec une étape qui la fournit, telle que: nœud"
J'ai fait un fichier groovy qui contient une fonction et je veux l'appeler dans mon déclaratif Jenkinsfile. Mais cela montre une erreur.
My Jenkinsfile--->
def myfun = load 'testfun.groovy'
pipeline{
agent any
environment{
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
}
stages{
stage('calling function'){
steps{
script{
myfun('${REPO_PATH}','${APP_NAME}')
}
}
}
}
}
Résultat--
org.jenkinsci.plugins.workflow.steps.missingContextVariaLexceptionException: Classe de contexte requise Hudson.FilePath est absente peut-être que vous avez peut-être oublié d'entourer le code avec une étape qui la fournit, telle que: noeud
Suggère-moi quelle est la bonne façon de le faire.
Vous devez soit utiliser un pipeline scripté et mettre l'instruction "Charger" dans la section NODE (voir Cette question ) ou si vous utilisez déjà un pipeline déclaratif (ce qui semble être le cas), vous pouvez Incluez-la dans la section "Environnement":
environment {
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
MY_FUN = load 'testfun.groovy'
}
Nous devons envelopper avec le nœud {}, de sorte que les exécuteurs Jenkins s'exécutent sur le nœud, en cas que nous souhaitions exécuter sur un nœud d'agent spécifique, nous pouvons mentionner comme le nœud ("nom de l'agent") {}
exemple ici:
node {
def myfun = load 'testfun.groovy'
pipeline{
agent any
environment{
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
}
stages{
stage('calling function'){
steps{
script{
myfun('${REPO_PATH}','${APP_NAME}')
}
}
}
}
}
}