В идеальном мире наши менее опытные сотрудники могли бы просто использовать команду Slack для выполнения задания и получить результаты обратно к ним, отрицая использование графического интерфейса Jenkins. Я обнаружил, что запускать сборку в Jenkins с помощью команды Slack на GitHub, но у нее есть несколько ограничений, в том числе то, что для нее требуется соотношение Heroku 1: 1 и задание Jenkins, что не очень подходит для наших целей.
Моя мысль состоит в том, чтобы люди использовали единственную команду, например /jenkins
, и использовали параметры после нее, которые будут анализироваться одной работой и использоваться для запуска других вниз по течению. Это удерживает нас в одной слабой команде / одном экземпляре, но все же дает нам всю необходимую нам гибкость.
Проблема заключается в получении параметров для Дженкинса. Я представляю что-то вроде следующего рабочего процесса;
Типы пользователей
/Jenkins job2 param1 param2
в Slack. Это вызов зонтичного задания, которое будет анализировать параметры, чтобы выяснить, что нужно запустить.Команда каким-то образом отправляется на работу под зонтиком Дженкинса. Пример Heroku, прямая интеграция, ж / д.
Зонт на работу получает
job2 param1 param2
в виде строки. (Возможно, как значение одного параметра, возможно, предварительно разделить на несколько полей)Задание Umbrella разбивает строку, если это еще не сделано, и выясняет, что пользователь хочет
job2
запустить, используя параметрыparam1
иparam2
.Задание Umbrella выполняет сборку для запуска нижестоящего задания, которое будет вызываться, что приведет к получению пользователем результатов.
Это шаги 2-3, которые сбивают меня с толку. Как я могу передать строку (с пробелами!) Из Slack на мою работу в Jenkins?
Если вся моя предпосылка ошибочна, я также готов бросить вызов моей структуре.