Jenkins ile Git Kullanarak Deployment

Şöyle bir deployment akışımız olduğunu varsayalım:

  • Local ortamda projeyi ‘develop‘ branch’ında geliştiriyoruz.
  • Production’a bir release çıkmak istendiğinde develop branch’ını ‘master‘ branch’ı ile merge edip Github’a push’luyoruz.
  • Github’a güncelleme geldiğinde Jenkins tetikleniyor.
  • Jenkins build task’ini çalıştırıyor.
  • Eğer build başarılıysa Jenkins, görevi pruduction kodunu güncellemek olan başka bir işi çalıştırıyor.

Continue reading Jenkins ile Git Kullanarak Deployment

PHP Projelerinde Jenkins Kullanımı

Eğer projelerinizde unit test yazıyorsanız ve özellikle projede birden fazla developer çalışıyorsa Jenkins gibi bir continuous integration (CI) aracı kullanmanız tavsiye ediliyor. Martin Fowler’in CI tanımı şu şekilde (çeviri Özcan Acar):

Sürekli Entegrasyon, programcı ekibi tarafından yapılan değişikliklerin sık aralıklarla sisteme entegre edilmesi için kullanılan yazılım geliştirme yöntemidir. Her programcı günde en az bir kere yaptığı değişiklikleri entegre eder. Bu sayede gün boyunca birden fazla entegrasyon gerçekleşir. Otomatik sürüm oluşturulması ve mevcut testler yardımı ile entegrasyon kontrol edilir. Birçok ekip tarafından sürekli entegrasyon metodu ile entegrasyon sorunlarının azaldığı tespit edilmiştir. Sürekli entegrasyon ile bir ekip hızlı bir şekilde kendi içinde bütün ve çalışır programlar yazabilmektedirler.

PHPUnit‘in geliştiricisi Sebastian Bergmann abimiz PHP projelerinde kullanmak üzere şahane bir Jenkins template’i hazırlamış (Template for Jenkins Jobs for PHP Projects). Bu template ve extension’lar sayesinde PHP projeleri için; syntax hatalarının tespiti, uygulama içinde kod tekrarı yapılıp yapılmadığı, unit-test sonucu code coverage durumu gibi bir çok kontrol ve rapor paketi sunuyor.

(Kuruluma başlamadan önce Apache Ant’ın ve Jenkins’in kurulu ve çalışıyor olduğundan emin olun)

Öncelikle PHP araçlarını kuralım:
Continue reading PHP Projelerinde Jenkins Kullanımı