Przekaż ciąg znaków do pracy Jenkinsa ze Slacka

12

W idealnym świecie nasi mniej znający się na technologii pracownicy mogliby po prostu użyć polecenia Slack, aby uruchomić zadanie i przywrócić wyniki do nich, co neguje użycie interfejsu GUI Jenkinsa. Znalazłem Rozpocznij kompilację w Jenkins przy użyciu Slack Command na GitHub, ale ma kilka ograniczeń, w tym, że wydaje się, że wymaga instancji Heroku w stosunku 1: 1 do pracy Jenkins, co nie jest świetne dla naszych celów.

Myślę, że ludzie powinni używać pojedynczej komendy typu „like” /jenkinsi używać parametrów po niej, które zostaną przeanalizowane przez jedno zadanie i użyte do wyrzucenia innych na później. To utrzymuje nas do jednego luźnego polecenia / jednej instancji, ale wciąż zapewnia nam całą potrzebną elastyczność.

Problem polega na dostarczeniu parametrów do Jenkinsa. Wyobrażam sobie coś takiego jak następujący przepływ pracy;

  1. Typy użytkowników /Jenkins job2 param1 param2w Slack. To wywołuje zadanie parasolowe, które przeanalizuje parametry, aby dowiedzieć się, co uruchomić.

  2. Polecenie jest w jakiś sposób wysyłane do zadania jenkins parasolowego. Instancja Heroku, bezpośrednia integracja, w / e.

  3. Zadanie parasolowe otrzymuje job2 param1 param2jako ciąg. (Być może jako wartość jednego parametru, być może wstępnie podzielona na wiele pól)

  4. Zadanie parasolowe dzieli ciąg, jeśli jeszcze tego nie zrobił, i stwierdza, że ​​użytkownik chce job2uruchomić, używając parametrów param1i param2.

  5. Zadanie parasolowe wykonuje kompilację, aby uruchomić tak zwane dalsze zadanie, które zwalnia użytkownika z powrotem jego wyniki.

Występują we mnie kroki 2-3. Jak mogę przekazać ciąg (ze spacjami!) Ze Slacka do mojej pracy w Jenkins?

Jeśli cała moja przesłanka jest błędna, jestem również otwarty na wyzwanie mojej ramce.

Alex
źródło

Odpowiedzi:

5

Znaleziona wtyczka nie ma stosunku 1: 1 między instancją Heroku a zadaniami kompilacji, ponieważ przyjmuje nazwę zadania jako parametr, więc powinieneś być w stanie uruchomić dowolną liczbę zadań z jednej instancji Heroku.

Jeśli chodzi o przekazywanie spacji w parametrze zadania, podział słowa jest wykonywany na spacjach, więc cytowanie niczego nie zmieni. Możesz spróbować użyć znaku odstępu HTML %20i sprawdzić, czy to działa?

Osobiście starałbym się użyć wtyczki, aby bezpośrednio uruchomić prawidłowe zadanie z powiązanymi parametrami, zamiast przeglądać zadania filtrowania.

Michael Pereira
źródło
1
Mówiąc ściślej, podział na spacje jest zrobiony kilka linii nad twoim linkiem, nie wykopałem wystarczająco, aby potwierdzić, czy nie, podzieli się na wszystkie spacje, ale wygląda na to, że wilk
Tensibai
Masz rację, jest podzielony na spacje według tej linii github.com/joshdholtz/jenkins-slack-command/blob/master/…, więc nie będzie miało znaczenia, czy są cytaty czy nie wokół parametrów
Michael Pereira
Tak, parametry są zapętlone i ponownie podzielone na = to się zepsuje, jeśli wartość zawiera spacje, użycie% 20 może działać po wysłaniu do luzu, ale trzeba to przetestować, ponieważ nie mam pojęcia, jak Jenkins lub slack mogą je przeanalizować lub zachować
Tensibai