2012-03-10 7 views
5

Supponiamo di attivare il build inviando GET request allo /job/awesomesauce/build. È possibile recuperare l'ID della build innescata?È possibile recuperare l'id di build Jenkins che ho attivato tramite la sua API?

Sono consapevole che posso provare ad accedere a /job/awesomesauce/lastBuild/api/json, ma questo mi darebbe informazioni errate nel caso in cui ci siano più build in esecuzione contemporaneamente. Inoltre, sembra che ci sia un leggero ritardo (alcuni secondi) prima che mi dia informazioni sulla build attualmente in esecuzione.

risposta

4

Ho dovuto fare questo genere di cose, ed ecco una soluzione che ho usato: avevo un parametro dummy che ho passato alla build (nel mio caso era BUILD_ID di un'altra build, nel tuo caso potrebbe essere un timestamp), ho poi interrogato e analizzato sia l'API coda di costruzione ([server]/queue/api/...) e l'API regolare (nel caso in cui la costruzione è finita) per la costruzione che contiene il valore del parametro appropriato.

1

Nell'intestazione della risposta http "posizione", è possibile ottenere l'ID della voce della coda. Quindi puoi eseguire il polling/queue/item // api/json per ottenere il suo numero eseguibile, che è l'id di build.

+0

La nuova generazione è stata avviata, ma "Posizione" in risposta è job uri invece di build uri. Edit: https://issues.jenkins-ci.org/browse/JENKINS-12827 – mj41

+0

ho descritto in qualche dettaglio in più qui: http://stackoverflow.com/questions/24507262/retrieve-id-of-remotely- innescati-Jenkins-lavoro/28524219 # 28524219 – morgwai

Problemi correlati