Benzer bir sorun yaşadım. İşte ver bana
Öncesi req
- Jenkins çalıştı budur. 2+
- Github (veya Githhub kuruluş) (Ben Jenkins 2.60 kullanıyordum)
- Kişisel GitHub hesap ve Jenkins birbirleriyle konuşmak gerekir.
- Github günü
ilgili haklara sahip bir github Kişisel Erişim Token (PAT) oluşturun.senin repo
,
- URL
YourJenkinsURL/github-webhook/
olarak kök dizinine bir Jenkinsfile ekleyin ve 'İsteği çekin'
kontrol 'beni ayrı ayrı etkinlikleri seçmek Let' seç ile webhook oluşturmak Repo'nuzun klasörü. Test amaçla size GitHub Çekme Talebi Oluşturucu eklentisini yükleyin
- Jenkins günü
altına
pipeline {
agent any
stages {
stage('Test') {
steps {
echo 'Hello World ...'
}
}
}
}
gibi temel bir merhaba dünya olarak içerik koyabilirim.
Jenkins (2+ Ayrıca “Github” eklentisi gerekiyor ama bu normalde ver Jenkins bir parçası olarak monte edilmelidir) - Kimlik
- bir ‘gizli metin’ kimlik bilgisi olarak github Kişisel Erişim Token (PAT) ekleyin.
- github kullanıcı adı-şifresini "kullanıcı adı-şifre" kimlik bilgisi olarak ekleyin. Bu Github Eklentinin parçasıdır: - Yapılandırma Sistemi
- Github - Github Sunucular
- Jenkins yönetin. Bir github sunucusu ekleyin. ‘API URL’si’ https://api.github.com’a varsayılan olacaktır. Kurumsal github kullanıyorsanız, kurumsal github url ve ardından/api/v3 ile değiştirin. Kimlik bilgisi için PAT seçeneğini seçin. Bağlantıyı test edin. Ho Hooksları Yönet ’kontrol edilir.
- GitHub İstek İstek Oluşturucu: "GitHub Sunucu API URL'si" için Github Sunucu bölümünde belirtildiği gibi aynı URL'yi kullanın. ‘Paylaşılan Sırrı’ boş bırakın. Kimlik bilgileri için ‘kullanıcı adı-şifre’ kimlik bilgisi kullanın. Çalışmasını sağlamak için kimlik bilgilerini test edin. Ayarlarımda web Web sayfalarını otomatik yönet ’kontrol edildi.
Boru Hattı İşi
- ‘Boru Hattı'nın’ seçeneğini kullanarak yeni bir öğe oluşturun. Not: Bu, Çok Kanallı Boru Hattı değil vanilya Boru Hattı işidir.
- Genel Bölümü: 'Github Projesi' Çek - Proje URL:
- Yapı tetikler sizin github Repo url girin: Check 'GitHub Pull Talebi Oluşturucu' Eğer GitHub'dan için belirlenen 'GitHub API kimlik bilgileri' seçeneğini seçenek için
- istek oluşturucu çekin 'Manage Jenkins - yapılandır Sistemi' yönetici listesi için ekran
- : eklemek adınızı
- Kontrol Kullanım github kanca tetikleme yapı için
- Boru Hattı:
- SC SCM’den Boru Hattı Komut Dosyası’nı seçin. Bu durum, repo dosyanızın kök klasörünün bir ‘Jenkins dosyası’ (
- ) içereceğini varsayar. SCM: Seç ‘Git’ Seçiniz
- Depolar - repo ayrıntılarını girin.Kimlik bilgileri için "kullanıcı adı-şifre" tabanlı kimlik bilgilerini kullanın.
- Gelişmiş tıklayın
+refs/pull/*:refs/remotes/origin/pr/*
- Şubesi olarak refspec ekleyin -
${sha1}
- Senaryo Yolu olmalıdır: Jenkinsfilevarsayılan ayarı, olduğu gibi bırakın.
- Hafif Ödeme - bu kadar bu (https://github.com/jenkinsci/ghprb-plugin/issues/507)
işaretini kaldırın. Hepiniz ayarlandınız. Şimdi Jenkins Boru Hattı işini
Bazı gözlemler
- boru hattını tetiklemez github bir PR webhook yükünü tekrar verilmesini tetiklemesi gerektiğini repo ana daldaki bir PR oluşturma ancak yeniden Hatta yeni bir PR açmadan veya - Github üzerinde kapalı bir PR açmak, boru hattı işini tetikler
- “Pipeline Script” öğesini seçerseniz ve pipeline komut dosyasını buraya yapıştırırsanız, iş tetiklemez !!!
sadece bu kuruluşun üyelerinin PR'leri için mi, yoksa harici katılımcılardan gelen PR'lar için mi çalışacak? – elopio
@elopio, eklentinin, aynı depodan ve aynı zamanda harici depolardan PR'lerin oluşturulmasını etkinleştirme/devre dışı bırakma seçenekleri vardır. Tam olarak istediğin şey değil, ama muhtemelen yeterince yakın. –
PRs testleri ve 'Jenkinsfile' ile oynamak için bu resmi [jenkinsci/workflow-demo] (https://hub.docker.com/r/jenkinsci/workflow-demo/) docker görüntüsü var. PR'lerde bu güzel kırmızı ve yeşil çeklerin mümkün olup olmadığını merak ediyordum ve bu tamamen mümkün. ((Burada örnek) (https://github.com/jenkinsci/docker-workflow-plugin/pull/57)):) Ve bu [çokbağlı iş akışları hakkında yararlı bir yazı] (https://jenkins.io/blog/2015/12/03/pipeline-as-code-with-multibranch-workflows-in-jenkins/) – GabLeRoux