GitLab web kancasından birleştirme isteği için Jenkins derlemesini tetikleme


10

Jenkins'in (1.561) GitLab'e (6.7.5) gönderilen birleştirme isteği web kancası tarafından tetiklenen birleştirme (çekme) istekleri oluşturmasını istiyorum. Parametreli bir yapı var ve Jenkins "GitLab Birleştirme İsteği Oluşturucu" (1.2.0) ve "GitLab Hook" (1.0.0) eklentileri var. Jenkins CI'ye geçiş maalesef gerçek bir seçenek değil.

Birleştirme Talebi Oluşturucu eklentisi olan değişkenler sürece inşa birleştirme isteklerine mümkün gitlabMergeRequestId, gitlabTargetBranchve gitlabSourceBranchmevcuttur. Eklenti deponun kendisini yokladığında ya da manuel bir yükle (örneğin curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters) yapıyı tetiklediğimde bu iyi çalışır , ancak bunu bir kanca ile yapamam.

GitLab Hook eklentisini kullanarak, JSON yükünde gerekli verileri alabilirim, ancak değerlerin "yanlış" anahtarları var:

  • gitlabMergeRequestId dır-dir id
  • gitlabTargetBranch dır-dir target_branch
  • gitlabSourceBranch dır-dir source_branch

Git parametrelerini GitLab Birleştirme İsteği Oluşturucusu eklentisinin gereksinimleri Nameve değişken değerleri ile yapılandırmayı denedim Default Value. Maalesef (ve muhtemelen kasten), değişkenler Default Valuealanları vardır değil Jenkins kimliğe sahip bir birleştirme isteği arıyor böylece, değiştirilmesi ${id}ve benzeri şube değerler.

GitLab'dan gönderilen yükü yapılandırmanın bir yolunu bulamadım ve ne GitLab Hook eklentisi ne de GitLab Birleştirme İsteği Oluşturucu eklentisi tarafından kullanılan parametre adları için yapılandırma seçenekleri yoktur.

Önleme ve Jenkins için geçmeden önce yükünü değiştirmek için küçük bir PHP komut dosyası yazmayı düşünüyorum. Bunun işe yarayacağından emin olsam da, kesinlikle gereksiz gibi görünüyor.

Görebildiğim diğer tek gerçek seçenek eklentilerin kaynağını değiştirmek, ancak bu onları bir PITA haline getiriyor.

Açık bir şeyi göz ardı ettim mi yoksa GitLab'dan Jenkins'e bir web kancasıyla Birleştirme İsteği derlemelerini tetiklemenin gerçekten daha basit bir yolu yok mu?

Yanıtlar:


2

Eklentiye bir göz atın Gitlab Birleştirme İsteği Oluşturucu Eklentisi.Jenkins'i Manage Jenkins'den yapılandırın ve gitlab url'yi birleşme isteği oluşturucusunda ayarlayın. Https://github.com/timols/jenkins-gitlab-merge-request-builder adresindeki talimatları izleyin. -plugin 1


0

Bu yeni eklentiyi kontrol edin (gitlab-eklentisi), belki yardımcı olur. Bu eklenti Jenkins'i GitlabHQ ile kullanılacak bir GitlabCI Web Servisi olarak öykünür.


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.