Kısa yanıt şudur: siz bunu multibranch pipeline
ile yapamazsınız. Çokbağlı boru hatları, projenin kökünde sabit bir Jenkinsfile
ile Pipeline script from SCM
stilinde belirli bir boru hattını yürütmek üzere (en azından şimdilik) tasarlanmıştır.
Ancak, çok öğeli freestyle projelerinde yapılan Multi-Branch Project eklentisini kullanabilirsiniz. İlk olarak, multibranch pipeline configuration
ile olduğu gibi multibranch freestyle configuration
tanımlamanız gerekiyor. Aşağıda gösterilen gibi bu yeni öğeyi seçin : o Yapılandırmanızın adı ve bir alt proje için içeren bir klasör oluşturur, yani
bu konfigürasyonu, multibranch pipeline
tip tamamen aynı davranacaktır her şube otomatik olarak algılandı.
uygulama daha sonra çocuk oyuncağı olmalı:
- Yapınızda bir parçası olarak çoklu şube konfigürasyonda
- Çağrısı başka yapı da
SCM
depo belirtin/post-build bir standart yapacağı gibi freestyle projesi, parametreli bir işi çağırmak (ve bunu build-job
olarak adlandırmak) ve onu depo bilgileri (ör. Git URL'si ve geçerli şube) (bu amaç için $GIT_URL
ve $GIT_BRANCH
önceden tanımlanmış değişkenleri kullanabilirsiniz)
- Sizin
build-job
, sadece bir inline boru hattı veya SCM'den kontrol edilen bir pipeline betiğini tanımlayın ve bu betiğin içinde bir SCM checkout yapın ve inşa etmeniz gereken adımlarla devam edin. build-job
boru hattı içeriği örneği:
. Tabii
node() {
stage 'Checkout'
checkout scm: [$class: 'GitSCM', branches: [[name: '*/${GIT_BRANCH}']], userRemoteConfigs: [[url: '${GIT_URL}']]]
stage 'Build'
// Build steps...
}
sizin farklı multibranches projeleri biraz farklı davranılması gerekiyorsa, ayrıca orta projeleri kullanabilirsiniz) sırayla jenerik build-job
boru hattını aramak olacağını
(en
build-project-A
,
build-project-B
... diyelim)
Bu çözümün en büyük dezavantajı, tüm yapılarınızdan yalnızca bir işten sorumlu olacak ve hata ayıklamayı zorlaştıracaktır. Çok-merkezli projelerinizin başarı/hata durumunda mavi/kırmızıya gitmesine rağmen, yapınızın gerçek problemini bulmak için build-job
'a geri dönmeniz gerekecektir.
Bu freestyle çoklu bağlantı seçeneği şimdi resmi olarak kullanım dışı görünüyor. Jenkins _does not_ şu anda, Jenkinsfile'ın bulunmadığı projeler için çoklu kutu yapıları yapma seçeneği sunuyor. Hangi gerçekten berbat – kert