2013-05-14 18 views
35

Chcę zbudować projekt przy użyciu dwóch repozytoriów Git. Jedna zawiera kod źródłowy, a druga zawiera skrypty kompilacji i wdrażania.Jenkins: Wiele repozytoriów Git dla jednego projektu

Mój problem polega na tym, że muszę mieć repozytorium do budowania i wdrażania różnych części projektu (duży projekt, wiele repozytoriów, te same kompilacje i skrypty wdrażania), ale Jenkins nie wydaje się być w stanie sobie z tym poradzić (lub nie wiem/nie wiem jak).

+0

To jest bardzo podobne do http://stackoverflow.com/questions/14843696/checkout-multiple-git-repos-into-same-jenkins-workspace –

Odpowiedz

29

UPDATE

Multiple SCM Plugin jest teraz przestarzała więc użytkownicy powinni migrować do Pipeline plugin.

Old odpowiedź

Tak, Jenkins może obsłużyć tego. Po prostu użyj Multiple SCMs pod kontrolą kodu źródłowego, dodaj swoje repozytoria, a następnie przejdź do sekcji Zaawansowane każdego repozytorium. Tutaj musisz ustawić Local subdirectory for repo (optional) i Unique SCM name (optional).

Twoje repozytorium zostanie przeciągnięte do podkatalogu Local, który ustawiłeś, a następnie możesz je skompilować w dowolnej kolejności.

Aktualizacja na s odpowiedź - aby uzyskać tę funkcjonalność, należy zainstalować Multiple SCMs Plugin.

+0

Plugin wielu SCMs jest teraz wymieniony jako przestarzały. –

2

Po prostu dzielę się doświadczeniem podczas pracy z wieloma SCM. Jeśli chcesz dodać wiele repozytoriów git do swojej kompilacji Jennkins, upewnij się, że inne wersje wtyczki git są kompatybilne z wtyczką Multiple SCM. Oto lista wtyczki z wersji, która pracowała dla mnie:

  • GitHub API Plugin 1.44
  • Jenkins GIT wtyczki klient 1.6.2
  • Jenkins GIT plugin 2.0.1
  • Git Server Plugin 1.2
  • Wiele SCM 0.2

Wcześniej zaktualizowałem do wersji wielokrotnej SCM 0.3 i nie mogłem dodać żadnego repozytorium git w tej sekcji.

Rgds, Manu

9

Miałem to samo pytanie, kiedy spojrzał na stwardnienie SCM wtyczki odpowiedzi zauważyłem ten plugin jest teraz wymieniony jako przestarzałe. Jest zawiadomienie, które zaleca użycie do tego potoku.

Poniżej znajduje się przykładowa konfiguracja sposobu, w jaki udało mi się to zrobić za pomocą potoku.

node() { 
    stage ('Extract') { 
    parallel 'Extract':{ 
     dir('project1') { 
     git url: 'ssh://[email protected]/project1.git' 
     } 
     dir('project2') { 
     git url: 'ssh://[email protected]/project2.git' 
     } 
    } 
    } 
} 
+1

To powinna być zaakceptowana odpowiedź! Uratowałeś mi życie. – renelopez

0

Po dodaniu kolejnego SCM za pomocą wtyczki Multiple SCM i wybraniu Git. Możesz wybrać opcję "Sprawdź w podkatalogu" za pomocą opcji "Dodatkowe zachowania" dla repozytorium. Dzięki temu można wykonywać wiele kopii w przestrzeni roboczej.

+0

Rozumiem, że jest to odpowiedź na stare pytanie, ale natknąłem się na to samo pytanie i znalazłem rozwiązanie. – enkor

Powiązane problemy