2015-05-07 7 views
6

Git kodumuz var ve şubelerimizi kapmak ve bir derleme yapmayı denemek için Jenkins'i kurmaya başladım. Şimdiye kadar birkaç dalın, bir yapıyı bitiremedikleri için, en son inşa edildiklerinden beri çürümeye başladıkları görülmektedir.Jenkins'i hariç tuttuğum birkaç nokta dışında tüm şubeleri oluşturacak şekilde nasıl yapılandırabilirim?

Hariç tutulanların listesi dışında, bulunan tüm şubeleri oluşturmak istiyorum. Bu Jenkins'de mümkün mü? Bu, işleri başlatıp çalıştırmama izin verecek, sonra da düzeltmeye çalıştığımda daha fazla şube açmak için geri dönecek.

Ben varsayılan yerini alabilecek umutlu olduğunu seçeneğini 'inşa etmek Git> Şube' baktığımızda lookahead

ile bugüne kadar

Regex denedi Ne '**' joker Birlikte :. Biraz kazma ve http://rubular.com/ ile çift kontrol etme, aşağıda istediklerimi yapabilirdi.

:^(?! köken/dışlama \ -bu \ dalı meydana getiren \ .v1 | kökeni/\ -bu \ dalı meydana getiren \ -too.v2 hariç) (\ S +)

Şimdi bir varsayım var Burada arka planda çalışan regex motoru hakkında. Umarım onu ​​anlayabileceğini ümit ediyorum, ama eğer böyle olmazsa bu yöntemin neden başarısız olduğunu açıklar. Hariç tutmaya çalıştığım da dahil olmak üzere tüm dalları inşa ediyor gibi görünüyor. Belki biraz daha fazla hata ayıklaması yapmalıyım?

Bunun bazı olası bir çözümü içeren gibiydi https://github.com/jenkinsci/git-plugin/pull/45 eşleşen ihtiyacım olanı gibi geliyor şubelere bir ters seçeneği eklendi Jenkins/Hudson Build All Branches With Prioritization rastladım burada

benzer soruları görünüyordu. Ne yazık ki bu, benim sahip olduğum Jenkins versiyonunda görünmüyor. Bu, 2011'in uzun zaman önceydi.

Sistem ben

Ubuntu LTS 14.04 kullanıyorum. Jenkins ver. 1,611. GNU takım zincirleri C/C++ kodu yapmak.

+2

Bu https://stackoverflow.com/questions/21314632/how-to-exclude-git hemen hemen bir [Bu sorunun yinelenen] (olduğu dalı meydana getiren-kurma-içinde-Jenkins). * Hariç tutmanız gereken sadece dalların * eşleşmesi gereken bir regex yazmalısınız (veya daha fazla "Şube oluşturmak için" girişler eklemek daha kolay olurdu) ve sonra "Ters" seçim stratejisini kullanmalısınız. –

+0

@ChristopherOrr, ihtiyacım olan çözüm gibi geliyor. Ters seçeneklerin nerede saklandığını bulamadım. Bunu denedim ve işe yaramıyor gibi görünüyor, hala dışarıda kalan dalı inşa etmeye çalışıyor ama ben devam edeceğim. Yorumunuzu cevap olarak seçebilmeniz için veya seçimlerin nasıl işleneceğini değil mi? – TafT

cevap

1

Nasıl şube belirtici olarak

^(?!.*master).*$ 

kullanmayla ilgili. Bu regexp, master ile eşleşmeyen tüm şubeler anlamına gelir.

Dağılımı:

^(?!.*master).*$ 
^    ---> beginning of string 
(?!  ) ---> negative lookahead find all that doesnt match 
    .*   ---> zero or more of 'any' character 
     master  ---> should not match master 
      .*$ ---> will match anything to the end of string 

İlgili: https://stackoverflow.com/a/18709097/109305

+1

Bunu denediğimi ve işe yaramadığını sorduğumda belirttim.Belki de RegEx motoru son iki yılda güncellendi, böylece şimdi çalışıyor. ChristopherOrr'ın önerdiği gibi Inverse seçme stratejisini bitirdim. – TafT

İlgili konular