Создание файла на основе входных данных, предоставленных в jenkins

#jenkins #curl #groovy #jenkins-pipeline #jenkins-groovy

#дженкинс #curl #groovy #дженкинс-трубопровод #jenkins-groovy

Вопрос:

Я пытаюсь выполнить команду curl с помощью jenkins, но мне нужно предоставить файл json при выполнении этого curl. Я хочу создать этот файл динамически, используя значения, переданные в параметрах во время выполнения сборки.

Пример файла json:

{ «field1»: «value1» «field2»: «value2» }

Эти значения будут динамическими, то есть они будут переданы в качестве параметров при выполнении сборки.

Пожалуйста, проведите меня через это.

Комментарии:

1. Пожалуйста, добавьте код, который вы пробовали, и как он не удался (например, ошибки, трассировки стека, журналы, …), Чтобы мы могли его улучшить.

2. Пожалуйста, добавьте пример кода, который вы пробовали.

Ответ №1:

Это можно сделать следующим образом

 pipeline {
    agent any;
    parameters {
        string(name: 'NAME', defaultValue: 'Mr X', description: 'Who should I say hello to?')
        string(name: 'LOCATION', defaultValue: 'NYC', description: 'Where should I report this to?')
    }
    stages {
        stage('curl') {
            steps {
                writeJSON file: 'data.json', json: params
    
                sh """
                    curl -X POST -H "Content-Type: application/json" -d @data.json http://api.xyz.net
                    
                """
            }
        }
    }
}
 

Примечание — для DSL writeJSON необходимо установить плагины pipeline-utility-steps или, используя собственный groovy api, вы можете params преобразовать объект в JSON.