Виконайте сценарій оболонки після побудови повідомлення в Jenkins


81

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

Відповіді:


67

Це дуже легко зробити за допомогою плагіна завдання збірки завдань .

Дженкінс - опція "Опублікувати завдання побудови"


48
Натомість я рекомендую плагін PostBuildScript для простого запуску сценарію. Це простіше і надійніше, якщо вам не потрібно обумовлювати вихідні дані журналу. Наприклад, це дозволяє виконувати будь-які кроки збірки в діях після збірки.
Сампо

9
Також зауважте, що плагін Post Build Task поміщає весь вивід консолі в пам’ять, щоб виконати умовний тест ... який може зайняти багато пам’яті, якщо сотні завдань дають багато результатів ... Наш майстер jenkins просто розбився через до цього плагіна ...
grayaii

1
Плагін PostBuildScript призупинено.
Відкрито

@Upen Ви можете надати посилання, що підтверджує це?
Вадим Котов

10

Ви також можете запускати довільні команди, використовуючи Groovy Post Build - і це дасть вам великий контроль над їх запуском тощо. Ми використовуємо це для запуску сценарію оболонки "палець вини" у випадку невдалих або нестабільних збірок.

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
  item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
  lastStableBuild = item.getLastStableBuild()
  lastStableDate = lastStableBuild.getTime()
  formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
  now = new Date()
  formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
  command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
  manager.listener.logger.println "FOB Command: ${command}"
  manager.listener.logger.println command.execute().text
}

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


6

Якщо я правильно прочитав ваше запитання, ви хочете запустити скрипт у частині збірки дій після збірки.

Я сам використовую плагін PostBuildScript для запуску git clean -fxdпісля того, як збірка заархівувала артефакти та опублікувала результати тесту. У моїх рабів Дженкінса є SSD-диски, тому я не маю кімнати, щоб зберігати згенеровані файли в робочій області.



1

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


як я можу запустити сценарій, якщо збірка виходить з ладу виключно на основі будь-якого виконуваного сценарію оболонки, який я маю під своїми завданнями? Дякую
topgun

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