Однакова робоча область для кількох завдань


74

У мене є робота під назвою "розробка", а інший проект - "аналіз коду". На даний момент у нас є дві різні роботи та різні робочі області, але однаковий код; чи можна якось використовувати одну і ту ж робочу область для кількох завдань?
Я перевірив плагіни, доступні в Jenkins, але не знайшов жодного підходящого.


3
Ви можете використовувати спеціальне робоче простір stackoverflow.com/questions/20537137 / ...
KeepCalmAndCarryOn

4
Якщо ви все-таки використовуєте одну і ту ж робочу область, ви хочете переконатися, що у вас немає паралельності та що ви можете належним чином відстежувати редакції між ними. Паралельність може трапитися, якщо ви перебуваєте в процесі аналізу коду, коли завдання розробника починає перевіряти код. Є плагіни (і відповіді) щодо того, як запобігти проблемам на цьому веб-сайті. (Повне розкриття інформації: Ми спробували спільну робочу область і вирішили, що нам краще
підійде

1
Щоб зробити цю паралельність легко, запустіть завдання аналізу із завдання розробника та перевірте розширений параметр проекту "Блокувати збірку, коли будується проект вище" на завданні аналізу.
Paul Hicks

Відповіді:


84

Припустимо, ваша робоча область для роботи "Jenkins" така /var/workspace/job1. На сторінці конфігурації завдання "Аналіз коду" на вкладці Generalнатисніть Advanced...і виберіть опцію Use custom workspaceта надайте ту саму робочу область, що /var/workspace/job1і для вашої "програми".


23
Це гідний шлях ... але я б зробив це ще раз на крок ближче і використав wiki.jenkins-ci.org/display/JENKINS/inheritance-plugin для успадкування $ {WORKSPACE}, тому його не потрібно жорстко кодувати на всіх робочих місцях - це буде чистіше підтримувати.
thekbb

5
@thekbb, це може бути опцією, за винятком переповнення стека, яке відбувається при використанні спільно з плагіном JobConfigHistory. Поки супровідник не виправить цю проблему, він марний для тих, хто потребує плагін JobConfigHistory для завдань, які не використовують спадщину ...
Джон Л.

Каталоги робочої області відрізняються між головними (робота / <ім'я роботи> / робоча область) і веденими вузлами (робоча область / <ім'я роботи>. Отже, жорсткий код включає як сценарій, так і плагін.
rickfoosusa,

Здається, потік потоків
Роб

1
До уваги того, що у версії Дженкінса 2.147 для встановлення користувацької робочої області перейдіть на Generalвкладку вашого проекту, ніж натисніть Advanced...кнопку, і ви побачите прапорець "Використовувати спеціальну робочу область".
Lyserty

6

Існує плагін Jenkins, який дозволяє створювати спільне робоче місце, налаштовуючи їх на кожну роботу, для якої потрібні файли з цього сховища.

Приклад використання:

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

Плагін Дженкінса

https://wiki.jenkins-ci.org/display/JENKINS/Shared+workspace+plugin#


PS: Ви повинні розглянути "Відомі проблеми", які можуть укласти угоду для ваших потреб.

іноді, на свіжому скопійованому завданні, параметр url-простору, що не зберігається для конфігурації при першому "збереженні", вам слід зберегти завдання двічі, щоб бути впевненим.

^^ Цей ще не вирішений , я намагався і все ще трапляється. Після кількох збережень (щоб бути впевненим) робота працює ідеально.


6

якщо вам не вдалося знайти, Use custom workspaceви можете розмістити його під вашим проектомconfigure>General>Advanced>Use custom workspace


0

Я спробував плагін для успадкування і ну! ця річ - кувалда, коли все, що у мене є, - це крихітний цвях.

Врешті-решт, я додав дію після збірки "Триггер параметризованої збірки на інших проектах" із "Побудувати на тому самому вузлі" та "Заздалегідь визначеним параметром". Подальше завдання має мати визначений параметр з тим самим іменем (WORKSPACE_PARENT), але ви можете залишити це поле порожнім. Потім ви визначаєте подальше завдання за допомогою спеціальної робочої області (у розділі Загальне> Додатково)

Я обрав дію після збірки, оскільки фактичний успіх завдання збірки не залежить від результатів подальшої збірки (на даний момент). Якщо ви хочете перенести результати подальшого завдання на батьківське, вам потрібно додати його як завдання збірки, а не як дію після збірки.

Це чудово працює для того, що мені потрібно.

Завдання батьків після збірки: Завдання батьків після збірки

Спеціальна робоча область дитини: Спеціальна робоча область дитини

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.