записать все параметры jenkins в файл JSON, используя $ {params} - PullRequest
0 голосов
/ 23 февраля 2020

Я новичок в создании сценариев оболочки, и у меня есть некоторые проблемы, когда работа Дженкинса параметризована. Я хочу записать все параметры сборки конвейера заданий jenkins с параметрами в файл JSON, используя ${params}! В моем случае у меня есть 4 параметра (apis: multi-select, name: string, version: single-select и status: Boolean), есть скрипт Jenkinsfile

pipeline {
  agent any
    stages {
        stage('Build') {              
            steps {              
                script{              
                   sh "./test.sh ${params}"
                }
            }
        }
    }
}

Содержание теста. sh

#!/bin/bash
echo $@ > file.json

Вывод в jenkins

+ ./test.sh [apis:dev,qa,prod, name:CC, version:g3, status:true]

Результат в файле. json

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

Мой вопрос заключается в том, как отформатировать вывод, чтобы получить чистый результат в файле. json? пожалуйста, мне нужна помощь.

1 Ответ

1 голос
/ 23 февраля 2020

Добавьте это в начало вашего скрипта:

import groovy.json.JsonOutput

Затем используйте эту строку вместо sh "./test.sh ${params}":

writeFile file: 'params.json', text: JsonOutput.toJson(params)

При этом используются библиотека Groovy и нативный метод Дженкинса для записи файлов, что означает, что вам не нужно использовать метод sh.

...