相关文章推荐
骑白马的毛豆  ·  selenium.common.except ...·  3 年前    · 
胆小的风衣  ·  一篇文章浅析Django ...·  3 年前    · 
坚强的遥控器  ·  如何使用Tableau ...·  3 年前    · 

Jenkins – Required context class hudson.FilePath is missing Perhaps you forgot to surround the code with a step that provides this, such as: node

function-call groovy jenkins jenkins-pipeline pipeline

When i load another groovy file in Jenkinsfile it show me following error.

"Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node"

I made a groovy file which contains a function and i want to call it in my Declarative Jenkinsfile. but it shows an error.

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

Result–

org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node

Suggest me what is the right way to do it.

You either need to use a scripted pipeline and put "load" instruction inside the node section (see this question) or if you are already using a declarative pipeline (which seems to be the case), you can include it in "environment" section:

environment {
    REPO_PATH='/home/manish/Desktop'
    APP_NAME='test'
    MY_FUN = load 'testfun.groovy'