Jenkins - belirli bir şube nasıl oluşturulur


100

Bu, parametreleştirilmiş bir derleme yapmak kadar basit değildir. Zaten bu dallardan herhangi biri GitHub'a gönderildiğinde derleyip dağıtacak belirli bir derleme sürecim var:

görüntü açıklamasını buraya girin

Öyleyse, henüz ittiysem developve başarılı bir şekilde oluşturduysam, manuel bir yapıyı nasıl tetiklerim ve feature/my-new-feature(a yapmadan git push) çekmesini nasıl sağlayabilirim ? Parametrelendirilmiş derlemeyi etkinleştirmeyi, adlı yeni bir dize brancheklemeyi ve ardından yeni bir dal belirteci eklemeyi denedim */$branch. Sonra bir yapı ve dizi koştu branchiçin feature/my-new-featureve hala çıkarılmış develop.

Herhangi bir yardım için minnettar olurum!


Github webhook'tan mı bahsediyorsun? bu probleminizi çözebilir. bunu github'dan tetiklemek ister misin?
Abhijeet Kamble

1
Hayır, GitHub entegrasyonu zaten çalışıyor. Belirli bir şubeyi manuel olarak nasıl oluşturacağımı bilmem gerekiyor.
ffxsam

3
Bende de aynı sorun var. İş, farklı dallar oluşturmak için yapılandırılır ve bir git kancası tarafından tetiklenir. Ancak manuel olarak belirli bir dal oluşturmak istediğimde (GIT'de yeni değişiklikler olmadan) "Şimdi oluştur" u tıklıyorum ancak her zaman en son teslim alınan dalı oluşturuyor. Ayrıca çeşitli yapı özelliklerini denedi.
cornz

Parametreniz dal olarak adlandırılmışsa $branch, dal belirteci alanında belirtmeniz yeterlidir .
Alexey

1
@Alexey, ancak otomatik olarak başlatılan derleme sırasında bu $branchboş bir dizeyle sonuçlanacak, sanırım.
Nakilon

Yanıtlar:


117

En iyi çözüm şunlar olabilir:

Mevcut işe bir dize parametresi ekleyin görüntü açıklamasını buraya girin

Ardından Source Code Managementbölümde Branches to build, tanımladığınız dize parametresini kullanmak için güncelleme yapıngörüntü açıklamasını buraya girin

Etiketli bir onay kutusu görürseniz, işaretlenmemiş Lightweight checkoutolduğundan emin olun.

Resimlerde belirtilen yapılandırma, jenkins işinin mastervarsayılan dal olarak kullanılmasını söyleyecektir ve manuel derlemeler için sizden şube ayrıntılarını girmenizi isteyecektir (FYI: varsayılan olarak ayarlanmıştır master)görüntü açıklamasını buraya girin


4
Varsayılan olarak bina yöneticisi, tüm geliştirme dallarını oluşturması beklenen genel bir geliştirme derlemesi için yeterli olmaz.
static_rtti

10
Tanrım, bu çok boktan. Jenkins, Branches to buildgeçerli olduğu lanet olası Git deposu olan bölümü neden saklamıyor? İnşa edilecek bir şube belirlemek için bunu yapmak zorunda olmak aptalca bir PITA.
Alex Zavatone

9
Dong bu işe yaramıyor (benim için). Sonunda Jenkins git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --pruneaçıkça geçersiz olan bir dalı kontrol etmeye çalışıyor .
Liam

1
bu Jenkins'te bir hata olarak kaydedildi, bu yüzden bunun nasıl çalıştığını görmek zor?
Liam

20
@Liam Hata biletinde önerildiği gibi, bunun çalışması için "Hafif ödeme" seçeneğinin işaretini kaldırmanız gerekir.
asmaier

10

Her ikisini de aynı jenkins işi içinde yapabileceğinizi sanmıyorum, yapmanız gereken, dalları almak için github'unuza erişebilecek yeni bir jenkins işi yapılandırmak ve ardından hangisini manuel olarak oluşturacağınızı seçebilirsiniz.

Parametreli bir yapı olarak işaretleyin, bir ad belirtin ve git parameter

görüntü açıklamasını buraya girin

ve şimdi git seçeneklerini yapılandırabilirsiniz:

görüntü açıklamasını buraya girin


7
Bu git parametresi bir jenkins eklentisi mi? Bu tür bebek arabası ekleme seçeneğini göremiyorum. Bir eklenti ise cevapta ona işaret edebilir misiniz?
Leandro David

@LeandroDavid yes Git Parameter bir eklentidir ve kurulduktan sonra bu seçeneği Parametre Ekle altında göreceksiniz.
gotosachin

9

Şubeyi Jenkins komut dosyaları aracılığıyla kontrol etmek için şunu kullanın:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
Sorunun tam olarak bununla ilgili olmadığını biliyorum, ancak bu bilgiyi arıyordum ve google bir cevap olarak bu siteyi önermeye devam etti.
Igor L.

burada da aynı kardeşim. Kesin cevabın cevabını bulabildiniz mi
Thinkingmonster

1

Soruya çok güzel cevaplar görebiliyorum ama yine de Git parametresini aşağıdaki gibi kullanarak bu yöntemi paylaşmak istiyorum:

Git parametresi ekle

Boru hattını inşa ederken şubeyi seçmeniz istenecektir: Oluşturulacak şubeyi seçin

Bundan sonra harika kod aracılığıyla klonlamak istediğiniz şubeyi belirtebilirsiniz:

git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github' 

"Origin /" öğesini küçültmek ve dal adını almak için 7'den son karaktere bir dilim kullandığımı unutmayın.

Ayrıca, bir webhook tetikleyicisi yapılandırdıysanız, yine de çalışır ve belirttiğiniz varsayılan dalı alacaktır ( masterbizim durumumuzda).


0

Bu, Ranjith tarafından sağlanan yanıtın uzantısıdır.

Bir seçim parametresi yapısı seçmenizi ve oluşturmak istediğiniz dalları belirlemenizi öneririm. Aktif Seçim Parametresi

Ve bundan sonra, inşa edilecek dalları belirleyebilirsiniz. İnşa Edilecek Şube

Şimdi, projenizi oluştururken, size "Oluşturulacak şubeyi seçebileceğiniz Parametrelerle Oluşturun" sağlanır.

Ayrıca tüm şubelerinizi aktif seçim parametresine getirmek için harika bir komut dosyası da yazabilirsiniz.


Lütfen detaylandırın. TeamCity bunu varsayılan olarak yapar, ancak Jenkins kendi ayakkabılarını bile bağlayamaz !!!
C Johnson

0

görüntü açıklamasını buraya girin

Yapılandırma Tetikleyicileri altında bir seçenek olacaktır.

GitHub Dallarını kontrol edin

Bir kanca oluşturulacak ve ardından github Branches'i seçtiğinizde Jenkins'ten istediğiniz herhangi bir dalı oluşturabilirsiniz. görüntü açıklamasını buraya girin

Umarım yardımcı olur :)


Bu kurulumla bu eklentiyi kullanmaya çalışıyorum, ancak işi başlatmanın bir yolunu bulamıyorum. Gh'den olayların doğru gelip gelmediğini kontrol etmenin farklı bir yolu var mı?
Vito De Tullio

Run Branch TriggerSeçeneği alıyor musunuz , mevcut tüm dallar için git deposunu tarar ... Ayrıca bir hata olup olmadığını görmek için jenkins Günlüklerine -> Manage Jenkins ... bölümüne bakın
rohit thomas

1
Lütfen ayrıntı verin, açıklamanız çok küçük ve kısa.
C Johnson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.