2016-04-04 11 views
1

Bir iletme iletisinin verilen bir dizeyle başlaması durumunda bir Jenkins işini çalıştırmayı göz ardı etmek istiyorum. Ben "Yoklama belli mesajları ile kaydedilmesini yok sayar" "Ek Davranışlarını" ekleyerek denedim ve:Belirli bir dize ile ileti başlatılırsa Jenkins işini göz ardı edin

enter image description here

yani İleti mesajının "doc!" Ile başlaması durumunda işi (dünyamda işi yürütmemek demektir) görmezden gelmek istiyorum. Birkaç çevrimiçi regex eşleştiricisi denedim ve ben ^doc!.* regex doğru olduğunu düşünüyorum. Ancak taahhüt mesajlarım "doc!" Ile başlasa bile iş Jenkins tarafından yürütülür. Neyi yanlış yapıyorum?

cevap

2

Ben benim regex değiştirirseniz yanı çalışmıyor gibi görünüyor. Belgeler, iletme iletilerinde (?s)'un birden çok yorum satırını kontrol ettiğini söylüyor. Ancak, (?s) kullanmadan, tek satırlık iletilerle bile tek bir işlem için bile çalışmaz.

+0

@Devanshu Dwivedi: Ben .. Bu konuda girişleri veya daha iyi bir çözüm gerek .. Bunu yapmak kodunun altına yazdım .. ci bir taahhüt mesaj metni atlamak zaman Jenkins inşa atlamak için 'inşaatçılar istiyorum:' ' - koşullu adım: ' ' koşullu tür: regex-match 'regex:. * ci \ W + atla. *' 'label: $ GIT_COMMIT' 'Ön Değerlendirme-başarısızlık: run' – RBT

1

Jenkins Git eklentisi, tabi ki GIT_COMMIT ortam değişkenini gösterir; [Jenkins Koşullu Adım] kullanın ve aşağıdaki bash kabuğunu yürütmek bir adım inşa:

echo "===========================" 

if [ "git show $GIT_COMMIT | grep ".doc" == false ] ; then 
    echo "pattern failed"; 
    exit 1 
else 
    echo "ok" 
fi 

echo "===========================" 

Ve kabuk başarısız olursa, yapı başarısız işaretleyin. Bu durumda neden tam olarak bilmiyorum

(?s)^doc!.*

: @ devanshu-dwivedi cevabı yaklaşımım işe yarayabilecek olsa da

İlgili konular