Passa la stringa al lavoro Jenkins da Slack


12

In un mondo ideale, i nostri dipendenti meno esperti di tecnologia potrebbero semplicemente utilizzare un comando Slack per eseguire un lavoro e ottenere loro i risultati, negando l'uso della GUI di Jenkins. Ho trovato Avvia una build in Jenkins usando un comando Slack su GitHub, ma ha alcune limitazioni tra cui il fatto che sembra richiedere un'istanza di Heroku in rapporto 1: 1 rispetto al lavoro di Jenkins, il che non è eccezionale per i nostri scopi.

Il mio pensiero è di fare in modo che le persone utilizzino un comando singolare come /jenkins, e successivamente utilizzino i parametri che verranno analizzati da un lavoro e usati per dare il via agli altri a valle. Questo ci tiene a un comando lento / un'istanza, ma ci dà ancora tutta la flessibilità di cui abbiamo bisogno.

Il problema sta nel portare i parametri a Jenkins. Sto immaginando qualcosa come il seguente flusso di lavoro;

  1. Tipi di utenti /Jenkins job2 param1 param2in Slack. Questo sta chiamando un lavoro ombrello che analizzerà i parametri per scoprire cosa eseguire.

  2. Il comando viene in qualche modo inviato al lavoro ombrello jenkins. Istanza di Heroku, integrazione diretta, w / e.

  3. Il lavoro ad ombrello riceve job2 param1 param2come stringa. (Forse come valore di un singolo parametro, forse pre-suddiviso in più campi)

  4. Il lavoro a ombrello divide la stringa se non è già stata eseguita e scopre che l'utente desidera job2eseguire, utilizzando i parametri param1e param2.

  5. Umbrella job esegue un buildjob per eseguire il processo downstream come chiamato, il che ridurrà all'utente i risultati.

Sono i passaggi 2-3 che mi stanno facendo inciampare. Come posso passare una stringa (con spazi!) Da Slack al mio lavoro Jenkins?

Se tutta la mia premessa è sbagliata, sono anche aperto a sfidare il mio telaio.

Risposte:


5

Il plugin che hai trovato non ha un rapporto 1: 1 tra istanza Heroku con lavori di compilazione poiché prende il nome del lavoro come parametro, quindi dovresti essere in grado di eseguire un numero qualsiasi di lavori da una singola istanza Heroku.

Per quanto riguarda il passaggio di uno spazio in un parametro di lavoro, la divisione della parola viene fatta su spazi in modo che la quotazione non cambierà nulla. Potresti provare a usare il carattere di spaziatura HTML %20e vedere se funziona?

Personalmente proverei ad usare il plugin per eseguire direttamente il lavoro corretto con i parametri associati invece di passare attraverso i lavori di filtraggio.


1
Per essere precisi, la divisione degli spazi è fatta poche righe sopra il tuo link, non ho scavato abbastanza per confermare o no, si dividerà su tutti gli spazi, ma suona come se fosse wilk
Tensibai,

Hai ragione, è diviso sugli spazi da questa riga github.com/joshdholtz/jenkins-slack-command/blob/master/…, quindi non importa se ci sono virgolette o meno attorno ai parametri
Michael Pereira,

I parametri Yep sono ripetuti e divisi nuovamente su = questo si interromperà se un valore contiene spazi, usando% 20 potrebbe funzionare quando pubblicato su slack, ma deve essere testato perché non ho idea di come Jenkins o slack possano analizzarli o tenerli
Tensibai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.