Передать строку на работу Дженкинса из Slack

12

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

Моя мысль состоит в том, чтобы люди использовали единственную команду, например /jenkins, и использовали параметры после нее, которые будут анализироваться одной работой и использоваться для запуска других вниз по течению. Это удерживает нас в одной слабой команде / одном экземпляре, но все же дает нам всю необходимую нам гибкость.

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

  1. Типы пользователей /Jenkins job2 param1 param2в Slack. Это вызов зонтичного задания, которое будет анализировать параметры, чтобы выяснить, что нужно запустить.

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

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

  4. Задание Umbrella разбивает строку, если это еще не сделано, и выясняет, что пользователь хочет job2запустить, используя параметры param1и param2.

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

Это шаги 2-3, которые сбивают меня с толку. Как я могу передать строку (с пробелами!) Из Slack на мою работу в Jenkins?

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

Alex
источник

Ответы:

5

Найденный плагин не имеет отношения 1: 1 между экземпляром Heroku и заданиями сборки, поскольку он принимает имя задания в качестве параметра, поэтому вы можете запускать любое количество заданий из одного экземпляра Heroku.

Что касается передачи пробела в параметре задания, слово разделяется на пробелы, поэтому цитирование ничего не изменит. Вы могли бы попытаться использовать символ пробела HTML %20и посмотреть, работает ли он?

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

Майкл Перейра
источник
1
Если быть точным, разделение на пробелы производится несколькими строчками над вашей ссылкой, я не копал достаточно, чтобы подтвердить или нет, оно будет разбито на все пробелы, но это звучит так, как будто
Wenskai
Вы правы, эта строка разделена пробелами github.com/joshdholtz/jenkins-slack-command/blob/master/…, поэтому не имеет значения, есть ли кавычки или нет вокруг параметров
Майкл Перейра
Параметры Yep зациклены и снова разделены на = это сломается, если значение содержит пробелы, использование% 20 может сработать при публикации в slack, но это нужно проверить, потому что я понятия не имею, как Jenkins или slack могут их анализировать или хранить
Тенсибай