web-dev-qa-db-fra.com

Classe de contexte requise Hudson.FilePath manque peut-être que vous avez oublié d'entourer le code avec une étape qui la fournit, telle que: noeud

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.

4
manish soni

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'
}
2
quietbird

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}')
                }
             }
         }
     }
  }

}
1
Suresh Kandru