Monday, December 10, 2007

Hudson ve pluginleri

Sürekli Entegrasyon, gerçekten hafife alınmaması gereken bir kavram, tabi bu tür işleri yaparken hangi araç ya da araçları kullandığınız da önemli...
Geçen gün okuduğum Continuous Integration anti-patterns isimli bir makalede yazılan yapılmaması gerekenler, ya da bizi yanlışlara sürükleyen ortak hatalar listesi, kullandığım CI Server aracını yeniden takdir etmemi sağladı... Tabi ki Hudson'dan bahsediyorum. Bir CI Server'ın yapması gereken herşeyi yapmaya çalışıyor, en azından bunun için uğraşı veriliyor. Ve özellikle kendini, pluginleri ile ön plana çıkarıyor... Üzerinde düşünüldükten sonra bazı pluginler Hudson'ın içerisine konuluyor, diğerleri ise plugin olarak entegrasyonu size bırakılıyor... Peki Hudson'ı bu kadar ön plana çıkaran pluginler nelerdir?


Source Code Management Plugin'leri

CVS ve SVN Hudson'ın içerisinde geliyor. Bunun dışında pluginler ile getirdikleri Accurev [Tutorial sayfası], ClearCase [Tutorial sayfası], Mercurial [Tutorial sayfası], Perforce [Tutorial sayfası], StarTeam [Tutorial sayfası]

Repository Browser Pluginleri

FishEye ve Sventon Hudson'ın içerisinde geliyor. Bunun dışında Polarion [Tutorial Sayfası] plugini mevcut.

Job Tipleri

Halihazırda Ant, Maven, Maven 2, free-style jobları ile gelen Hudson, bunların yanında Batch Task [Tutorial Sayfası], Gant [Tutorial Sayfası], MSBuild [Tutorial Sayfası] ve NAnt [Tutorial Sayfası] pluginleri ile yapabileceği iş türlerini artırıyor.

Code Coverage Pluginleri

Clover [Tutorial Sayfası], Cobertura [Tutorial Sayfası] ve Emma [Tutorial Sayfası] pluginleri ile code coverage konusunda çeşitlilik sağlıyor.

Code Convention Pluginleri

FindBugs [Tutorial Sayfası], Task Scanner [Tutorial Sayfası] ve Violations [Tutorial Sayfası] pluginleri code convention ile ilgili tool'ları kullanıp, raporlamaları yayınlamanızda oldukça yardımcı oluyor, özellikle Violations plugini PMD ve CheckStyle gibi araçların raporlarını harmanlayıp güzel bir arayüz sağlıyor..

Notification Pluginleri

İçerisinde gelen mail notification olayını ve RSS desteğini saymazsak Google Calendar [Tutorial Sayfası], IRC Plugin [Tutorial Sayfası] ve Jabber [Tutorial Sayfası] pluginleri bilgilendirme için kullanılabiliyor

Issue Management Pluginleri

JIRA [Tutorial Sayfası] ve Trac [Tutorial Sayfası] pluginleri bu konuda yardımcı olabilir.

Testing Pluginleri

JUnit entegrasyonu içerisinde bulunan Hudson'ın diğer test pluginleri, JavaTest Report [Tutorial Sayfası] ve NUnit [Tutorial Sayfası]

Diğer Pluginler

Bu pluginlerin dışında sürüm işlemlerini geliştirmek, güçlendirmek ve daha rahat yönetmek adına bazı pluginler yapılmıştır ki bunlar bazen gerçekten çok kullanışlı olabiliyor. Bu pluginler ise Build-timeout [Tutorial Sayfası], Japex - [Tutorial Sayfası], java.net uploader [Tutorial Sayfası], Locks and Latches plugin [Tutorial Sayfası], Naginator [Tutorial Sayfası], Plot Plugin [Tutorial Sayfası], Port Allocator [Tutorial Sayfası], SCP [Tutorial Sayfası], Text-finder [Tutorial Sayfası], URL Change Trigger [Tutorial Sayfası], VMware [Tutorial Sayfası] ve Xvnc [Tutorial Sayfası]. Tabi bunların ne iş yaptığını anlamak için sayfaları dolaşmanız gerekiyor.

Üffff amma çok plugin varmış...

Peki bu kadar plugin ile nasıl başa çıkacağım mı diyorsunuz? Bunu da düşünmüş adamlar, Hudson'ı benim daha önce yazdığım bu yazıda veya daha güncel olan Hudson dokümanında belirtildiği şekilde kurduysanız, Manage Hudson > Manage Plugins dediğinizde önünüze açılacak ekranda pluginlerinizin bir listesini bulacaksınız. Bu listede Plugininizin adını, versiyonunu bulabilir, silebilir, veya yeni plugin ekleyebilirsiniz. Yeni plugin eklemek için ise Plugin Download sayfasından yüklemek istediğiniz plugini bulup indirdikten sonra (unutmayın uzantısının hpi olması gerekiyor), manage plugins sayfasında bulunan Upload Plugin kısmını kullanarak ekleyebilirsiniz. Pluginleri kullanmak için yukarıda yazdığım listede pluginin hemen yanında bulunan "Tutorial Sayfası" linkini kullanabilirsiniz.

Tutorial sayfası size yetmedi veya eksik, ya da bir sorun olduğunu düşünüyorsunuz, o zaman Hudson'ın forumlarına girip, bu konuda yapılan tartışmalara bakabilirsiniz. Umarım faydalı bir yazı olur..


Not : Pluginleri gruplandırırken kategori isimlerini ingilizce bırakmamın sebebi ise bir çevirmen olmamamdan dolayı anlamlarını kaybetmelerini istemememdir :))

2 comments:

surav said...

Çok sıkı bir CI yorumu olmuş; sık kullanılanlara ekledim.

Uysal KARA said...

Evet Hudson benim de favorim, kısa sürede kolayca entegre edilebiliyor!