7

Salıverme testimizi kolaylaştırmak için, çeşitli mimariler üzerinde yazılım projelerimizi otomatik olarak oluşturmak ve (birim) test etmek için bir sistem arıyoruz. Bizim kısıtlamalar şunlardır:Birden çok proje için dil-agnostik otomatik yapı ve test sunucusu

  1. inşa etmek kod Python, Java ve C
  2. Birkaç farklı dağıtım mimarileri vardır dahil olmak üzere birçok dilde yazılmıştır.
  3. Bağımsız olarak oluşturmak ve test etmek istediğimiz birden çok projemiz var.
  4. Kaynak kontrol sistemimiz Subversion ve sistem bununla bütünleşmelidir.
  5. Bu çözüm ideal olarak açık kaynak olmalıdır. bazı yönlerden Güzel, ama sınırlı ya da varolmayan Python desteği ile, ağır Java merkezlidir:

Biz inceledik.

  • Buildbot: Bu, gereksinim duyduğumuz hemen hemen tüm işlevsellikler sağlar, çünkü bizim için bir anlaşma kesici olan birden fazla projeyi desteklemez.

  • Ne önerirsiniz? Ne kullaniyorsun?

    +0

    Perl "yapı ve test sunucusu" tanımınızla tanışır mı? – Jared

    +0

    Perl? Anladığımdan emin değilim. Detaylandırır mısın? –

    +0

    Zayıf bir girişimde sarılmış kendi inşa sisteminizi yuvarlamak zorunda kalabileceğiniz bir öneriydi. – Jared

    cevap

    4

    Hudson'a baktınız mı? Biraz Java merkezli bir araç olmasına rağmen .Net projelerini çok başarılı bir şekilde kullandım. Subversion'ı destekler ve birçok farklı dil ile çalışmasını sağlayan aktif ve çeşitli bir eklenti topluluğuna sahiptir. Açık kaynağı ve birçok platformda çalışmaktadır. Yapılandırmanın ve yönetmenin nispeten kolay olduğunu buldum.

    +0

    Bunu prototipledim ve tasarıya uygun gibi görünüyor. Bu cevabı kabul etmek, diğer birçok iyi alternatif gibi görünmüyor ... –

    1

    Buildbot'tan uzaklaştığım için, cruisecontrol kullanıyordum ve bir dereceye kadar mutluyum. Şu anki projelerim C++ & ruby ​​(bazı c uzantılarıyla) çoklu mimarilere bina olmaktan ibarettir ve sadece yakınmaların çoğu karıncaya ihtiyaç duymasıdır. Ve şu anda cc tek örneği, yaklaşık 40 farklı proje inşa ediyor. Yaptığımız inşa aşamaları, çalışan testlerden, bazı fonksiyonel testlerden, kod kapsamının alınmasından ve bunların raporlarının oluşturulmasından, paket veritabanının güncellenmesinden, irc entegrasyonundan, yazılım paketinin oluşturulmasından ve depodan oluşuyor. güncelleştirme (debian)

    Yalnızca yakınma, meraklı özelliklerin çoğunun karınca ile ilgili olarak (Cc oluşturma döngüsünde iken) gerekli olmasını gerektirir.

    Ayrıca hudson'u da değerlendirdim, cruise control'den biraz daha esnek görünüyor ama kişisel olarak konfigürasyon arayüzünü beğenmedim.

    +0

    PS. Yapı robotundan uzaklaşma sebebi de, konfigürasyonun, ilk kurulumun aslında oldukça fazla zaman aldığı “çok esnek” olmasıydı. Şimdiye kadar, hala daha büyük projeler için en iyi seçim olduğunu düşünüyorum. – rasjani

    +0

    Rasjani, bu meraklılarının CC özelliklerinin çoğunu diğer inşaatçılara bağlamak oldukça kolay olurdu. CruiseControl-kullanıcı posta listesi üzerinde bu konuda yayınlayın ve belki sizin için eklediklerinizi alabiliriz. –

    +0

    Jeffrey: Mail listemde aktif durumdayım ve önerilerin paylaşımını sundum. Ancak genel fikir, "alışılmışın dışında" kurulumunu kullanmamdan, örneğin karınca kullanmamasından dolayı, çoğu şeyimin göz ardı edildiğinden. Ama dedi ki, ben yazılım ile mutlu im, ben bu yüzden hala mutlu bir kampçı = im – rasjani

    1

    CruiseControl üzerinde bir geliştiriciyim ve AnthillPro yapan Urbancode için çalışıyorum, bu yüzden bunların güçlü yönlerini konuşabiliyorum. Ben de CITCON organizatörlerinden biriyim, bu yüzden neredeyse all the offerings in the space ile oldukça tanıdık. Her ikisi de oldukça iyi açık kaynak CI araçlarıdır. CruiseControl veya Hudson, oldukça iyi bir açık kaynaklı CI araçlarıdır. CC'yi özelleştirmek ve genişletmek gerçekten çok kolay ve 8 yıllık kullanım ömrü boyunca eklenen eklentiler var. Hudson, çoğu insanın başlaması için daha yeni ve daha kolay; İlk projenizin GUI yapılandırması kullanılarak çalıştırılması son derece basittir, CC ise XML dosyalarında gezinmeyi gerektirir.Hudson ayrıca aktif bir eklenti topluluğuna sahip ve hızla yeni yetenekler ekliyor.

    Ancak, projelerinizin karmaşıklığına ve gereksinimlerine bağlı olarak, AnthillPro gibi bir ticari araç bulabilirsiniz. CC veya Hudson'dan AHP'ye yükseltme nedenleri şirketten şirkete farklılık gösterse de, bazı tipik cevaplar, çevre tarafından erişim kontrolü ile self-servis dağıtımlarını kurma, birden fazla inşa/iş akışını birbirine bağlama isteği, yerleşik bağımlılık yönetimi, artifact deposu veya pull together data from a bunch of different tools & yeteneği, yaşam döngüsü boyunca oluşturulur.

    Herkesin bu yeteneklere ihtiyacı yoktur, ancak yükseltme için paranın karşılığını bulmayı düşünen kişiler.

    0

    Neden CI Factory'a da göz atmıyorsunuz.

    +0

    bu bağlantıya bir göz atın, ne garip bir oryantal sayfa göstermek gerekir ne gerekiyorsa yaparsınız. – BlaShadow

    +0

    @BlaShadow Teşekkürler, bağlantıyı güncelledim. –

    10

    TeamCity'a bir göz atın. Bizim için cazibe gibi çalışır.

    +2

    20'den fazla işiniz varsa ve daha sonra bu aracı kullanan 20 çalışanı ödemeniz gerekiyor. Jenkins ücretsizdir ve sınırsızdır – Gynnad

    +5

    Zamanınız değere sahipse, Jenkins kesinlikle bir kaç sınırlamaya sahiptir. – Garen

    İlgili konular