Требуемый класс контекста hudson.FilePath отсутствует Возможно, вы забыли окружить код шагом, обеспечивающим это, например: node

Когда я загружаю другой файл groovy в Jenkinsfile, он показывает мне следующую ошибку.

«Требуемый класс контекста hudson.FilePath отсутствует. Возможно, вы забыли окружить код шагом, обеспечивающим это, например: node»

Я создал отличный файл, содержащий функцию, и я хочу вызвать ее в своем декларативном файле Jenkins. но показывает ошибку.

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

Результат--

org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Требуемый класс контекста hudson.FilePath отсутствует Возможно, вы забыли окружить код шагом, обеспечивающим это, например: node

Подскажите, как это сделать правильно.


person manish soni    schedule 22.08.2019    source источник


Ответы (3)


Вам либо нужно использовать конвейер со сценариями и поместить инструкцию «load» в раздел узла (см. this question), или если вы уже используете декларативный конвейер (что, похоже, так), вы можете включить его в раздел" environment ":

environment {
    REPO_PATH='/home/manish/Desktop'
    APP_NAME='test'
    MY_FUN = load 'testfun.groovy'
}
person quietbird    schedule 11.11.2019

Нам нужно обернуть node {}, чтобы исполнители jenkins выполнялись на узле. В случае, если мы хотим выполнить на любом конкретном узле агента, мы можем упомянуть, например, node ('имя агента') {}

пример здесь:

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

}
person Suresh Kandru    schedule 29.04.2020
comment
Похоже, это не работает, Дженкинс жалуется на pipeline не на верхнем уровне - person gastrodon; 25.03.2021
comment
переместить объявление env внутри сцены - person Ayeshmantha Perera; 15.06.2021

Я получил это сообщение об ошибке, когда вызвал сценарий sh, которого нет в репозитории / файловой системе. Посмотрите, пожалуйста, в стеке следующую строку:

at WorkflowScript.run(WorkflowScript:135)

135 отмечает строку в Jenkinsfile, в которой происходит недостающий скрипт или ошибка.

person PHZ.fi-Pharazon    schedule 04.07.2021