2015-05-14 3 views
1

Я работаю на мультиконфигурации работу (Regression_L1) в Дженкинс, задачей которого является запуск 2-х видов испытаний (test1 и test2). В задании многоконфигурации он запускает задание исполнителя (Regression_executor) для запуска сценария для выбранного теста. Задача Regression_L1 может выполняться в matrix_service_jobs узел, в то время как задания на матрицу должны выполняться в подчиненном узле custom_matrix_service_jobs узел. Задача Regression_executor предназначена для работы на удаленных компьютерах с определенной меткой (RL1_Test_Machine).Доступ в Дженкинс

Моя цель - протестировать пользовательскую сборку у разработчиков. И поэтому я добавил параметр файла (config - File Location: CUSTOMBUILD/mybuild.zip) для задания. Вопрос в том, как я могу получить доступ к загруженному файлу?

Некоторые важные сведения:

  • рабочее пространство Regression_executor в: /home/regressionexec/
  • рабочее пространство Regression_L1 в: /var/work/matrix_service_jobs/Regression_L1
  • Regression_l1 матричные рабочие области: /var/work/workspace_user_matrix/workspace/Regression_L1/TEST_PHASE/test1/label/custom_matrix_service_jobs/ и /var/work/workspace_user_matrix/workspace/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/
  • $ JENKINS_HOME: var/work/jenkins_home

Я не знал, где найти загруженные файлы, поэтому я сделал поиск ung linux find. Результат: /var/work/jenkins_home/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/builds/${BUILD_NUMBER}/fileParameters/CUSTOMBUILD/mybuild.zip.

Как скопировать его на подчиненный узел, который выполняет тестовый скрипт?

ответ

3

Все, что вы вводите в разделе «расположения файла», это было бы место и переменных, которая содержит исходное имя загруженного файла.

Однако, на * NIX, ни /, ни . не являются действительными переменными символами имен, так что в вашем случае, если «Расположение файла» является CUSTOMBUILD/mybuild.zip системы не может создать переменную ${CUSTOMBUILD/mybuild.zip}

файл, хотя по-прежнему помещается под ${WORKSPACE}/CUSTOMBUILD/mybuild.zip. Вы также можете получить доступ к этому пути.

Вы можете использовать Copy To Slave plugin, чтобы скопировать файл из мастера ваших рабов

+0

I думаю, моя проблема в части $ {WORKSPACE}. в качестве параметра для исполнителя передается 'PACKAGE_PATH = echo '$ {WORKSPACE} /CUSTOMBUILD/mybuild.zip" >> env.txt', однако эквивалент PACKAGE_PATH указывает на путь, который не существует. Фактически, когда я пытался использовать 'find' в мастер-машине, я нашел загруженный файл в JENKINS_HOME, который отличается от рабочего пространства задания. См. ** Некоторая важная информация ** в моем оригинальном посте. Да, Скопировать в Slave-плагин, похоже, то, что мне нужно. Однако это зависит от получения пути к загруженному файлу. Благодарю. – ac22

+0

Попробуйте изменить 'CUSTOMBUILD/mybuild.zip' просто на' mybuild', а затем посмотрите в рабочей области задания (через Jenkins UI). Файл должен быть там. Obvsiouly, это для задания, которое фактически запрашивает параметр файла. Файл, найденный вами с помощью 'find', существует, потому что именно Дженкинс отслеживает параметры прошлого сборки (и это параметр). Содержимое '$ WORKSPACE' также является изменчивым, и его можно использовать только ** во время сборки. – Slav

+0

Мой плохой. Я ошибся на этапе сборки. Я включил в себя шаг по очистке рабочей области 'rm -rf *', поэтому параметр файла удаляется перед запуском исполнителя. Большое спасибо! – ac22

0

Я не мог найти свой закачанный файл в рабочей области, поэтому я закончил использовать что-то вроде

"%JENKINS_HOME%\jobs\%JOB_NAME%\builds\%BUILD_ID%\fileParameters\myUploadedFile"