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;
Tipi di utenti
/Jenkins job2 param1 param2
in Slack. Questo sta chiamando un lavoro ombrello che analizzerà i parametri per scoprire cosa eseguire.Il comando viene in qualche modo inviato al lavoro ombrello jenkins. Istanza di Heroku, integrazione diretta, w / e.
Il lavoro ad ombrello riceve
job2 param1 param2
come stringa. (Forse come valore di un singolo parametro, forse pre-suddiviso in più campi)Il lavoro a ombrello divide la stringa se non è già stata eseguita e scopre che l'utente desidera
job2
eseguire, utilizzando i parametriparam1
eparam2
.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.