Jenkins ve Mercurial’da otomatik derleme şeysi

Merhaba arkadaşlar,

Gene kendime daha sonra bilgi olsun diye yazdığım bir not ile karşınızdayım.

Son günlerde Jenkins’teki iş sayısının çokluğu, polling(yoklama) mekanizması ile çalışmamızı imkansız noktaya getirmişti. 150’den fazla iş aynı anda Mercurial’dan sorgu çekmeye çalışınca sistemi oldukça yoran bir noktaya getiriyordu.

Bunun için Mercurial’dan push komutunu çalıştırdıkça Jenkins üzerinde derleme işlemi başlatmak gerekiyor. Bunun için Mercurial’daki hook mantığını kullanıyoruz. Daha fazla bilgi.

Neyse

Aynı mantıkla, hook üstünde çalıştırdığımız komutun da bir şekilde Jenkins’te iş çalıştırması lazım. Bunun için de Jenkins’in Build Token Root eklentisini kullanıyoruz. Eklentiyi kurduktan sonra tek yapmanız gereken jenkinste projenizi uzaktan tetiklemeye(remote triggering) açmanız ve bir token üretmeniz. Bu sayede kullanıcı adı ve şifre vermeden çalışabiliyoruz.

Örnek bir hook (projenin .hg/hgrc dosyasında tanımlanan):

 

[hooks]
changegroup = curl “http://jenkins.adresi.com/buildByToken/build?job=proje_adi&token=urettiginiz_token”

Bu sayede şakır şakır uzaktan derleme yapabilirsiniz.