2016-03-03 12 views
22

Używamy wtyczki potoku z konfiguracją wielu ścieżek dla naszego CD. Sprawdziliśmy plik Jenkins, który działa z Git.Przepływ pracy wyzwalacza w Github push - Pipeline plugin - Konfiguracja wielostanowiskowa

git url: "$url",credentialsId:'$credentials' 

Zadanie działa poprawnie, ale nie uruchamia się automatycznie, gdy zmiana jest przekazywana do github. Ustawiłem poprawnie haczyki na stronie GIT.

Co ciekawe, kiedy wchodzę do oddziału zadania multibranch i klikam "View Configuration", widzę, że opcja "Build, gdy zmiana jest przekazywana do Githuba", jest odznaczona. Nie ma sposobu, aby to sprawdzić, ponieważ nie mogę zmodyfikować konfiguracji pracy (ponieważ trwa to od rodzica) i ta sama opcja nie jest w rodzicu.

Wszelkie pomysły, jak to naprawić?

+0

Jakie zdarzenie webhook GH zostało zarejestrowane? Zdarzenie 'push' będzie jedynym wymaganym. Czy Twój Jenkins jest widoczny z internetu? Czy status webhooka GH pokazuje wartości zwracane przez odbiornik webhook'a Jenkinsa? – amuniz

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu bez odpytywania? – grayaii

Odpowiedz

1

Odbieranie do odpytywania zwiększa opóźnienie - czas potrzebny na rozpoczęcie kompilacji, a co za tym idzie, powrót do wyniku.

Wydawało mi się, że podstawowe wtyczki mają niski poziom abstrakcji, więc przełączyłem się na wtyczkę Github Organization Folder, która zależy od wszystkich z nich i ustawia hak organizacyjny do wyzwalania buduje gałęzie i/lub żądania ściągania.

4

Znalazłem sposób sprawdzenia pola wyboru "Buduj, gdy zmiana jest przekazywana do Githuba".

Linia ta wystarczyły:

properties([pipelineTriggers([[$class: 'GitHubPushTrigger'], pollSCM('H/15 * * * *')])]) 

myślę jest potrzebny odpytywania, aby to działało. Byłoby miło, gdyby nie było potrzebne głosowanie.

Oto Jenkinsfile przykład z tego wdrożone:

#!/usr/bin/env groovy 

node ('master'){ 
    stage('Build and Test') { 
     properties([pipelineTriggers([[$class: 'GitHubPushTrigger'], pollSCM('H/15 * * * *')])]) 
     checkout scm 
     env.PATH = "${tool 'Maven 3'}/bin:${env.PATH}" 
     sh 'mvn clean package' 
    } 
} 
+0

Zastanawiam się, czy możliwe jest osiągnięcie tego samego dla bitbucket? – Lake

+1

@Lake - Ta zmiana powinna działać dla BitBucket: 'properties ([pipelineTriggers ([[$ class: 'BitBucketTrigger'], pollSCM (" H/15 * * * * ')])]) ' –

+0

@Max gdzie byłeś położyć tę linię, która zrobiła lewę? – pixelpax

0

Zanim zacznę, chciałbym podkreślić, że nie mam doświadczenia z Jenkins tak daleko, więc nie może być grono lepszych rozwiązań tam .

Co chciałem osiągnąć w pigułce:

  • Po każdym naciśnięciu wykonany z repo Bitbucket (test2), na każdym oddziale,
    ściągania i budować kolejną repo Bitbucket (test1), z identyczną
    nazwa oddziału, a zaraz potem zbuduj test2, używając testu 1 jako zależności od
    .

Jak udało mi się to osiągnąć?

  • zacząłem nową pracę z typu 'wielobranżowy Pipeline'
  • dodałem następujące Jenkinsfile do test2:

pipeline { 
 
    agent any 
 
    stages { 
 
     stage('build') { 
 
      steps { 
 
       dir('test1') { 
 
        git branch: BRANCH_NAME, url: '[email protected]:user/test1.git', credentialsId: 'credentials_id' 
 
       } 
 
       sh('build_process') 
 
      } 
 
     } 
 
    } 
 
}

  • I natknąć się problem polegający na tym, że nie można ustawić haka Bitbucket dla rurociągów

  • dodałem Bitbucket firm źródłowy wtyczki do Jenkins

  • Wybrałem Bitbucket w 'Źródła oddział' podczas konfigurowania zadania

  • I dodaną poświadczeń i umieścić zaznaczenie Auto zarejestrować webhook

  • Under „skanuj wielobranżowy Pipeline wyzwalaczy” mogę umieścić zaznaczenie okresowo, jeśli inaczej nie biegać, w odstępie 1 minuty

  • Dodałem webhook do mojego Bitbucket repo

  • zaktualizowałem wszystkie moje wtyczki, wznowiona Jenkins i jest gotowy, aby przejść

innych wtyczek mam zainstalowane: Bitbucket wtyczki wtyczki rurociągu. Mam nadzieję, że to pomoże komuś, udało mi się go rozwiązać w ten sposób po wielu godzinach bez dodatku Bitbucket Branch Source Plugin.

Powiązane problemy