2012-03-10 13 views
5

GET isteğini /job/awesomesauce/build'a göndererek yapıyı tetiklediğimi varsayalım. Tetiklenen yapının kimliğini almak mümkün mü?API aracılığıyla tetiklenen Jenkins yapısının kimliğini almak mümkün mü?

/job/awesomesauce/lastBuild/api/json numaralı telefona erişmeye çalıştığımı biliyorum, ancak aynı anda birden fazla oluşturma olması durumunda hatalı bilgiler vermekteyim. Ayrıca, şu anda çalışan yapı hakkında bilgi vermeden önce biraz gecikme (birkaç saniye) var gibi görünüyor.

cevap

4

Bu tür bir şey yapmam gerekiyordu ve işte kullandığım bir geçici çözüm: Yapıya geçtiğim sahte bir parametrem vardı (benim durumumda başka bir yapının BUILD_ID değeriydi; zaman damgası), daha sonra ben sorgu kuyruğu ([server]/queue/api/...) ve uygun parametre değeri içeren yapı için düzenli api (derleme tamamlandığında) sorguladı ve ayrıştırıldı.

1

http yanıtı üstbilgisinde "konum", kuyruk öğesi kimliğini alabilirsiniz. Ardından, yapı numarası olan yürütülebilir numarasını almak için/queue/item // api/json komutunu kullanabilirsiniz.

+0

Yeni yapı başlatıldı, ancak "Konum" yanıt olarak uri yerine iş uri. Düzenleme: https://issues.jenkins-ci.org/browse/JENKINS-12827 – mj41

+0

Burada daha fazla ayrıntıda açıkladım: http://stackoverflow.com/questions/24507262/retrieve-id-of-remotely- tetiklenen-jenkins-iş/28524219 # 28524219 – morgwai

İlgili konular