Как оформить и запустить конвейерный файл из TFS на конкретном узле в Jenkins? - PullRequest
0 голосов
/ 26 февраля 2019

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

У меня есть Jenkins-master, который установлен на Linux-машине, и я подключил Windows-машину в качестве раба.Я создал конвейерное задание с опцией « Конвейерный сценарий из SCM », выбранной для TFS.
Как заставить подчиненное устройство Windows запустить этот конвейер задание ?

Мастер не может запустить это задание, потому что он работает в linux, и не удается, когда он пытается сопоставить рабочее пространство с TFS, чтобы загрузить сценарий конвейера и запустить его.
Даже если ясоздайте другое конвейерное задание и выберите жесткий код сценария для запуска моего исходного конвейерного задания, например:

node('WIN_SLAVE') {
      build job: 'My_Pipeline'
}  

Это не работает.

И в выводе я вижу, что скрипт initiali (выше) на самом деле выполняется на моем ведомом устройстве Windows, но когда он создает задание My_Pipeline, он все равно пытается сопоставить рабочее пространство с мастером Jenkins.на Linux-машине путь / var / jenkins / ... и он не работает.

Если начальный конвейерный скрипт выполнялся на ведомом устройстве Windows, почему другой конвейерный скрипт не работает на том же узле?Почему он снова пытается извлечь файл конвейера из TFS в Jenkins-Master?

Как заставить ведомый Windows извлекать файл конвейера и запускать его?

1 Ответ

0 голосов
/ 26 февраля 2019

Вот несколько вещей, которые нужно проверить ...

  1. Убедитесь, что вы отключили исходное задание или полностью переопределили его для запуска на ведомом устройстве, поскольку указали, что настроили «другое задание».Для рабаПохоже, что эта другая работа просто вызывает предыдущую работу, а не определяет ее собственные спецификации.Когда задание запускается на ведомом устройстве, оно просто запускает любые параметры в этом исходном задании.

Кроме того, если у вас установлен флажок для построения, когда изменение передается в TFS, то ваш исходныйзадание все еще может пытаться запускаться каждый раз, когда в TFS вносятся изменения.

Убедитесь, что ведомый удаленный корневой каталог правильно настроен в конфигурации ведомого в разделе «Управление Jenkins -> Управление узлами».

Так как это ведомое задание запускает другое задание, которое вы изначально создали на главном, тоэто будет основано на мастере, как и ожидалось.

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

Если исходное задание является проектом вольного стиля, есть флажок под названием Ограничить, где можно запустить этот проект .Проверьте это и включите имя ведомого в выражение метки.Когда вы запустите задание, оно будет ограничено ведомым.

Наконец, будет полезно опубликовать задание My_Pipeline.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...