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.

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.