Zamanımın çoğunda yalnız bir geliştiriciyim, çoğunlukla büyük PHP tabanlı projeler üzerinde çalışıyorum. Kod tabanındaki değişikliklerin nasıl işlendiğini profesyonelleştirmek ve otomatikleştirmek ve temel değişiklikler yapmak zorunda kalmadan bir ekipte çalışmaya geçişi mümkün kılan bir Sürekli Entegrasyon süreci oluşturmak istiyorum.
Şu anda yaptığım şey, her proje için yerel bir test ortamım var; Her proje için SVN kullanıyorum; değişiklikler yerel olarak test edilir ve daha sonra genellikle FTP aracılığıyla çevrimiçi sürüme aktarılır. API belgeleri kaynak koddan manuel olarak oluşturulur; Birim testleri yavaş yavaş içine girdiğim bir şey ve henüz günlük rutinimin bir parçası değil.
Düşündüğüm "yapı döngüsü" aşağıdakileri yapacaktır:
Bir değişiklik kümesi yerel olarak test edildikten sonra SVN'ye kontrol edilir.
İnşa sürecine başlıyorum. SVN HEAD revizyonu kontrol edilir, gerekirse değiştirilir ve yüklenmeye hazır hale getirilir.
API Belgeleri otomatik olarak oluşturulur - henüz ayrıntılı olarak ayarlamadıysam, varsayılan bir şablon kullanarak tüm kod tabanını tarar.
Yeni gözden geçirme, FTP aracılığıyla uzak konuma dağıtılır (Bazı dizin yeniden adlandırma, chmodding, veritabanlarını içe aktarma ve benzerleri dahil.) Bu zaten phing'i çok sevdiğim bir şey, ama elbette alternatiflere açıkım .
Önceden tanımlanmış bir yerde bulunan birim testleri yapılır. Bir web sayfasına koyabileceğim E-Posta, RSS veya (tercihen) HTML çıktısını kullanarak başarısızlıkları veya başarıları hakkında bilgilendirildim.
(isteğe bağlı olarak) önceden tanımlanmış bir konumdaki son kullanıcı "changelog" metin dosyası, yürütme mesajının önceden tanımlanmış bir bölümü ile güncellenir ("Artık" foo "hem de" bar "için aynı anda filtre uygulamak mümkündür Bu mesaj, muhtemelen daha fazla dahili bilgi içeren SVN taahhüt mesajıyla aynı olmayabilir.
Kod metrikleri, kod stili denetimi ve benzeri şeyler şu anda birincil odak noktam değil, uzun vadede kesinlikle yapacaklar. Kutudan çıkar çıkaran çözümler çok nazik bir şekilde inceleniyor.
Bakıyorum
Geri bildirim ve deneyimlerBenzer bir durumda olan veya bu durumda olan ve bunun için başarıyla bir çözüm uygulayan kişilerden
Özellikle, adım adım iyi eğitimler ve izlenecek yollar bunu nasıl ayarlayacağınızla ilgili
Mümkün olduğunca fazla otomasyon sağlayan çözümler, örneğin her yeni proje için bir iskelet API'sı, test senaryoları vb.
ve ayrıca
- Ürün önerileri . Şimdiye kadar bildiğim bina için phing / ant ve phpUnderControl veya Hudson ve raporlama bölümü için . Hepsini görebildiğim kadar çok seviyorum ama elbette onlarla ilgili detaylı bir deneyimim yok.
Ben am gömülmek Basit çözümlere doğru güçlü bir eğilim var ve bu yüzden, iş ile. Öte yandan, bir özellik eksikse, çok sınırlı olduğundan ağlayacağım. :) İşaretle ve tıkla çözümleri de kabul edilir. Ayrıca PHP projeleri ile çalışabilir ticari ürün önerileri için duyuyorum.
Kurulumum
Ben yerel olarak Windows üzerinde çalışıyorum (7, kesin olarak) ve çoğu istemci projeleri genellikle paylaşılan barındırma (= uzak SSH) bir LAMP yığını üzerinde çalışır. Kendi çevremde çalıştırabileceğim çözümler arıyorum. Bunun için bir Linux VM kurmaya hazırım, sorun değil. Barındırılan çözümler, yalnızca açıklanan tüm yönleri sağlarsa veya sürecin diğer bölümleriyle etkileşime girecek kadar esnekse benim için ilginçtir.
Ödül Bana en fazla kilometre sağlayacağını düşündüğüm cevabı kabul ediyorum. Burada çok sayıda mükemmel girdi var, keşke birden fazla cevabı kabul edebilsem. Herkese teşekkürler!