2011-06-30 12 views
19

Jenkins işlerini oluşturma işleminizle eşleştirmeyi nasıl başarabilir ve devralma yapılandırmalarını miras üzerinde yapılandırabildiniz?Jenkins işlerinde iş mirası

Verilen herhangi bir yapı için en az üç işim (standart sürekli bütünleştirme/gece, güvenlik taraması, kapsam) ve daha sonra bazı aşağı entegrasyon test işleri yapacağım. Yapılandırma dilimleyici eklentisi, bazı yönleri çapraz işlerle ilgilenir, ancak her bir iş, kendi grubundaki diğer işlerle hiçbir ilişkisi olmayan, kendi kişisel varlıklarıdır.

Kısa bir süre önce QuickBuild'i gördüm ve bir ebeveyn işlerinin standart bir grup adımı tanımlayabildiği ve çocukların bunları geçersiz kılıp uzmanlaştırabileceği iş mirasına sahip. Jenkins'le, işlerin kopyalarım var, bir şeyleri değiştirene kadar sorun yok. QuickBuild ile işler arasındaki ilişki değişimlerimi az çabayla yaymamı sağlıyor.

Bunu Jenkins'de nasıl kullanacağımı anlamaya çalışıyorum. İşlerin başkalarını aramasına ve yönlerini geçersiz kılmasına izin vermek için parametreleştirilmiş yapı tetikleyici eklentisini kullanabilirim. Ardından, aranan işlerden gelen verileri arayanına toplardım. Ben şüpheliyim ki, benim kendi komutumda Jenkins işlevselliğini uygulamak için beni zorlayacak ve Jenkins'i daha az kullanışlı hale getirecek olan birtakım sorunlar var.

Jenkins'deki yapı işlerinizde karmaşıklığı nasıl ele alıyorsunuz? QuickBuild ile ilgili ciddi sorunlardan haberin var mı?

+0

rağmen olmadan QuickBuild'deki herhangi bir ilgi. Özellikle, CI ve Nightly yapıları için, temiz çalışma alanlarına karşı bir geri dönüş + güncelleme, ne kadar uzun süren eserler depolanacağı, arşiflerin nasıl arşivleneceği veya dağıtılacağı gibi farklı yapılandırma seçeneklerinden yararlanmak istiyorum. Her biri için talimatlar oluşturun. Matrix/multiconfig eklentisi yeterli seçenek sunmuyor. Sanırım bunu, yalnızca yapılandırılmış bir çalışma alanıyla adlandırılan, kendisini oluşturan bir alt-iş ile yönetebileceğimizi düşünüyorum - ama bu ek bir karmaşıklık. – CJBrew

+0

İşlerinizin her biri CI'nizin bir yönünü yapıyorsa, o zaman işlerin görevleri arasında yinelenme olması gerekmez. Aşağıdan bir işe sahip olan bir yapım işimiz var, bu aşamalar daha sonra entegrasyon testlerini yürüten aşamalar. Bu aşamalı testlerin bazılarını düzenli zaman aralıklarında çalıştırmak için bir istek varsa, bu zamanlanmış tetikleyiciler olarak da bu işler için ayarlanabilir. Yapım işi sadece bu şekilde inşa edilir, test işi sadece test yapar ve böyle devam eder. 'Klonlanmış Çalışma Alanı İçin Arşiv' görevini kullanırsanız, alt iş, yapı eserlerine erişebilir. Tercih ederseniz bir cevapta genişleyebilir miyim? – jbjon

+3

Bir yıl sonra, bu soruna bir çözüm bulup bulmadığınızı merak ediyorum. – sorin

cevap

2

Hemen hemen aynı sorun vardı. En az iki şubenin yanı sıra bagajımız için çalışması gereken bir dizi işimiz var. Şubeler sürümlerimizi temsil ediyor ve her birkaç ayda bir yeni şube oluşturuluyor. Bunun için el ile yeni işler yaratmak bir çözüm değil, bu yüzden bazı olasılıkları kontrol ettim.

Bir olasılık template plugin'u kullanmaktır. Bu, bir tür iş hiyerarşisi oluşturmanıza olanak tanır. Yapıcılar, yayıncılar ve SCM ayarları için kalıtım sağlar. Bazıları için çalışabilir, benim için yeterli değildi. Gözden geçirdiğim ikinci şey iş klonlaması için Ant Script ve kardeşi Bash Script idi. Bunlar gerçekten harika. Fikir, komut dosyasının yeni bir iş oluşturmasını sağlamak, tüm ayarları bir şablon işinden kopyalamak, gerektiğinde değişiklikler yapmaktır. Bu bir senaryo olduğu için çok esnektir ve bununla çok şey yapabilirsiniz. Sadece dezavantaj, bunun gerçek bir hiyerarşi ile sonuçlanmayacağıdır, bu nedenle şablon işindeki değişiklikler, önceden klonlanmış olan işlere yansıtılmayacaktır, sadece ileriye doğru oluşturulacak işlerde.

Bu iki çözümün dezavantajları ve erdemlerine bakarak, her ikisinin bir kombinasyonu en iyi şekilde çalışabilir. Tüm işler için geçerli olacak bazı temel ayarlara sahip bir şablon projesi oluşturursunuz ve o şablona bağlı olarak iş oluşturmak için bir bash veya ant komut dosyası kullanın.

Bu yardımcı olur umarım.

+0

Şablon Eklentisi, gitmenin yoludur. Biz onu kullanıyoruz ve bu gerçekten bir templating eklentiden istediğimiz her şeyi başardı! – Mark

1

Soruna nihai çözümümüzün ne olduğu sorulmuştu ... Satın alma sistemimizle geçen aylardan sonra Quickbuild'de 4000 ABD doları harcadık. Yaklaşık 2-3 ay içinde, templated bir yapı sistemi vardı ve onunla çok mutluyuz. Şirketten ayrılmadan önce sistemde birkaç ürün grubu vardı ve piyasaya sürülme sürecini de otomatikleştirdik.

Quickbuild harika bir ürün oldu. $ 40k sınıfında olmalı ama çok daha ucuza mal oluyor. Jenkins'in bunu yapabileceğine eminim, ancak Quickbuild bu işleve sahipken bir kludge olurdu. Daha önce ürünlerin üstünde karmaşık davranışlar uyguladım (örneğin, SVN 1.0'da birleştirme izleme) ve pişman oldum. Quickbuild makul fiyatlı ve bizim inşa ve test sistemleri için sağlam bir temel sağladı.Şu anda

, ben Bambu kullanarak firmasında olduğum ve yeni özellik şube özellik QuickBuild

0

Biz QuickBuild kullanmak yapabileceklerinin çok sağlayacaktır umut ve birçok şey için büyük iş gibi görünüyor. Özel eklentileri yazmak için API'lerini bile kullanabildim. Quickbuild'in eksik olduğu bir alan sonar entegrasyonu. Sonar ekibinin bir quickwin için değil bir Jenkins eklentisi var.

13

Ekibimin geliştirdiği ve sadece yakın zamanda açık kaynak kodlu yayınladığı bir eklentinin yayınlanmasına işaret etmek istiyorum. Tam "İşler arasındaki miras" uygular. size yardımcı olabilecek başka bağlantılar için Buraya

:

+0

Gelişmeye devam etmek için planlar var mı? Özellikle listelenen uyumsuzlukları 'Job Config History' ve' Artifactory' ile sabitlemek. GitHub'taki son işlem Şubat 2015'ten. –