Передайте рядок на роботу Дженкінса від Slack


12

В ідеальному світі наші менш обізнані працівники можуть просто використати команду Slack, щоб виконати роботу та повернути їх результати, ігноруючи використання графічного інтерфейсу Дженкінса. Я знайшов Почати складання в Дженкінсі за допомогою команди Slack Command на GitHub, але це має кілька обмежень, включаючи те, що, здається, потрібен екземпляр Heroku у співвідношенні 1: 1 до роботи Дженкінса, що не чудово для наших цілей.

Моя думка полягає в тому, щоб люди використовували сингулярну команду на зразок /jenkinsі використовували параметри після неї, які будуть проаналізовані однією роботою, і використовуються для відштовхування інших за течією. Це утримує нас до однієї слабкої команди / одного екземпляра, але все ж дає нам всю необхідну гнучкість.

Питання полягає в отриманні параметрів Дженкінсу. Я зображую щось на зразок наступного робочого процесу;

  1. Типи користувачів /Jenkins job2 param1 param2у Slack. Це викликає завдання парасольки, яке буде аналізувати параметри, щоб дізнатися, що потрібно запустити.

  2. Команда якось направляється на роботу з парасолькою джинкінів. Примірник Heroku, пряма інтеграція, з / п.

  3. Завдання парасольки отримує job2 param1 param2у вигляді рядка. (Можливо, як значення одного параметра, можливо, попередньо розділене на кілька полів)

  4. Завдання парасольки розбиває рядок, якщо цього ще не зроблено, і з'ясовує, що користувач хоче job2запустити, використовуючи параметри param1та param2.

  5. Завдання Umbrella виконує збір для виконання завдань нижче за течією, як називається, що поверне користувачеві свої результати.

Це кроки 2-3, які мене відштовхують. Як я можу передати рядок (з пробілами!) Від Slack до своєї роботи в Дженкінсі?

Якщо моя вся передумова помиляється, я також відкритий для того, щоб оскаржити свій кадр.

Відповіді:


5

Знайдений вами плагін не має співвідношення 1: 1 між екземпляром Heroku та завданнями збірки, оскільки він приймає назву завдання як параметр, тому ви повинні мати можливість запускати будь-яку кількість завдань з одного екземпляра Heroku.

Що стосується передачі пробілу в параметрі завдання, то слово розділення робиться на пробіли, тому цитування нічого не змінить. Можливо, ви можете спробувати використовувати символ інтервалу HTML %20і побачити, чи працює він?

Особисто я б спробував використовувати плагін для запуску правильної роботи з пов'язаними параметрами безпосередньо, замість того, щоб проходити фільтраційні завдання.


1
Якщо бути точним, розділення на пробіли зроблено на кілька рядків над вашим посиланням, я не копав достатньо, щоб підтвердити чи ні, він розділиться на всі простори, але це звучить так, як він заграв
Tensibai

Ви маєте рацію, він розділений на пробіли за цим рядком github.com/joshdholtz/jenkins-slack-command/blob/master/…, тому не має значення, чи існують цитати чи немає навколо параметрів
Майкл Перейра

Параметри Yep перекидаються і знову розбиваються = це порушиться, якщо значення містить пробіли, використовуючи% 20, може працювати при розміщенні в млявому режимі, але це повинно бути протестовано, тому що я не маю уявлення про те, як Дженкінс або слабість можуть розбирати або зберігати їх
Тенсібай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.