Как разобрать файл JSON в Jenkinsfile и прочитать пару значений ключа

Я новичок в Jenkins, Jenkinsfile и Groovy и не знаю, как читать файл JSON в Jenkinsfile. Я прочитал статью по адресу: https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#readjson-read-json-from-files-in-the-workspace. Однако в статье нет ясности с его реализацией. Я пробовал следующий код, но он терпит неудачу.

def jFile = readJSON file: 'file.json'
pipeline 
{
    //agent any
    agent 
    {
        // Some code
    }
    stages 
    {
        stage('Init') 
        { 
            steps 
            {
                echo jFile['context']
            }
        }
    }
}

Ошибка:

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

Какие-либо предложения?

"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
0
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно прочитать файл в шаге декларативного конвейера.

pipeline 
{
    //agent any
    agent 
    {
        // Some code
    }
    stages 
    {
        stage('Init') 
        { 
            steps 
            {
              script {
                def jFile = readJSON file: 'file.json'
                echo "${jFile['context']}"
               }
            }
        }
    }
}

Спасибо за вклад, однако это не сработало. Получил ошибку: Expected a step @ line 51, column 17. def jFile = readJSON file: 'file.json'

Aniruddha 07.01.2023 04:24

Из другого поста SO я обнаружил, что def jFile = readJSON file: 'file.json', который должен быть частью environment {}, он удаляет ошибку, но через другой, то есть Cannot get property 'context' on null object. Однако context существует в файле JSON.

Aniruddha 07.01.2023 04:29

Вам нужно обернуть код в скрипт{}-блок, см.: stackoverflow.com/questions/55508871/…. Кроме того, jFile.context также должен работать для доступа к значению.

Michael Kemmerzell 07.01.2023 13:21

Другие вопросы по теме