2016-07-06 2 views
3

Я очень новичок в Jenkins, и я пытаюсь использовать завиток, чтобы построить свою работу. Наряду с этим curl я хочу отправить файл Jenkins, который должен быть помещен в конкретный каталог моего рабочего пространства. Я много искал в googling, но не мог найти четкую документацию, которая могла бы привести меня к решению. Пожалуйста, руководство. Я также рассмотрел некоторые другие статьи в Google и StackOverflow, но не смог найти то, что искал.Как загрузить файл в jenkins и использовать его для сборки?

локон -X POST JENKINS_URL/Работа/JOB_NAME/построить \ --form file0 =/дом/abc.xml \ --form JSON = '{ "параметр": [{ "Имя":»/workspace "," file ":" file0 "}]} '

Я пробовал это также, похоже, не работал.

+0

что не работает? какую ошибку вы получаете?Дженкинс сохраняет файл в WORKSPACE; вам нужно скопировать его. – Jayan

+0

На самом деле я не мог найти файл в рабочей области, поэтому я не могу понять, загрузилась ли она или нет! Кроме того, это «имя»: «/ workspace», правильно? Нужно ли мне настраивать мою работу, чтобы принять параметр файла? Я уже сделал это, я поместил location/workspace в расположение файла в параметре файла в config. –

+0

curl -X POST url/jobname/build --form file0 = sample.xml -F json = '{"parameter": [{"name": "sample.xml", "file": "file0"}]} 'Получает мне исключение нулевого указателя –

ответ

2

С Дженкинс параметров файла помощи

Определяет местоположение, относительное в рабочем пространстве, где загруженный файл будет помещен (например, как «JAXB-ри/data.zip»)

Местоположение загруженного файла относится к рабочей области. Вам нужно скопировать/переместить его в сценарий. Часть имени - это имя аргумента файла задания. Это не имя вашего файла

Это сценарий. У задания есть параметр файла с именем RECORDS_LIST.

curl -X POST http://localhost:8080/job/builder/build \ 
      --form [email protected]:/1.txt \ 
      --form json='{"parameter": [{"name":"RECORDS_LIST", "file":"attachedfile"}]}' 

Ваш может быть

curl -X POST JENKINS_URL/job/JOB_NAME/build \ 
    --form file0=/home/abc.xml \ 
    --form json='{"parameter": [{"name":"YOUR_JOBS_FILE_ARGUMENT_NAME", "file":"file0"}]}' 

Пожалуйста, обратите внимание, что Дженкинс command line api может обрабатывать файл загрузить

java -jar jenkins-cli.jar -s http://localhost:8080/ build builder \ 
     -p YOUR_JOBS_FILE_ARGUMENT_NAME=/home/abc.xml 

[редактировать после просмотра собственного ответа OP еще]

Предупреждения

Часть пути имени файла в команде curl имеет значение «@» (обратите внимание, что @ перед контуром). Дженкинс кли не нуждается в этом. Эта ошибка, когда это происходит, трудно отслеживать.

+0

Благодарим вас за ответ. Я понял большую часть этого, кроме YOUR_JOBS_FILE_ARGUMENT_NAME. Позвольте мне объяснить, что я понял, когда я открываю jenkins и настраиваю задание, чтобы принимать параметры, я выбираю параметр файла и даю ему местоположение и описание файла, поэтому местоположение файла - это то, что вы подразумеваете под YOUR_JOBS_FILE_ARGUMENT_NAME? и какова может быть причина, по которой я получаю исключение Null указателя, когда я выполнял команду выше, как вы указали? Извините, я задаю очень простые вопросы, но Дженкинс - это то, что я впервые затронул в своей жизни вчера. Спасибо за помощь. –

+0

Решил проблему. Спасибо за твою помощь. –

+0

Полезно знать. Следуйте инструкциям на странице http://stackoverflow.com/help/someone-answers, чтобы принять ответ – Jayan

0

Все, что сказал Jayan, является правильным. Я просто делаю это более простым, для начинающих, таких как я. Помните: Знак @ очень важен здесь, в нашем curl url. Кроме того, YOUR_JOBS_FILE_ARGUMENT_NAME - это путь, в котором вы хотите сохранить файл, а также имя и расширение файла. Если вы поместите файл abcd.xml в файл вашего параметра файла, он сохранит abcd.xml в корневой папке вашего рабочего пространства, если вы хотите поместить его в папку xyz, вы должны записать местоположение файла в xyz/abcd.xml в своем Filelocation параметра файла при настройке вашей работы на jenkins, а также убедитесь, что они используются в curl. Так что если вы хотите поставить abc.xml в хуг/abcd.xml на Дженкинс, пожалуйста, используйте команду как:

curl -X POST JENKINS_URL/job/JOB_NAME/build \ 
    --form [email protected]/home/abc.xml \ 
    --form json='{"parameter": [{"name":"xyz/abcd.xml", "file":"file0"}]}' 

Это очень основной материал, но именно там я наткнулся.

Смежные вопросы