2015-03-25 7 views
5

Czy istnieje opcja monitorowania repozytorium git w Jenkins, ale czy nie można wykonać polecenia pull/clone/fetch przy zatwierdzaniu?Monitoruj repozytorium w Jenkins, ale nie ciągnij

  • Zestaw Source Code Mangement do "Git"
  • Repozytorium URL jest ustawiony na [email protected]: nazwa/branch.git
  • oddziału jest zbudować ustawiona na pochodzenie/1.0

Chcę, aby wyzwalanie zadania kompilacji oparte na zatwierdzeniu do określonej gałęzi w repozytorium, ale nie chcę, aby zadanie budowy Jenkinsa wykonywało automatyczne pobieranie/klonowanie/pobieranie.

+0

Mam problem ze zrozumieniem pytania. Dlaczego miałbyś monitorować repozytorium, ale nie chcesz go pobierać po aktualizacji? Co tak naprawdę próbujesz osiągnąć? – Chris

+0

Dostępne są wybrane zmiany i ustawienia, które chcę wykonać przed sklonowaniem repozytorium. Tak więc, zmiana jest zaangażowana w repozytorium, uruchamia się zadanie Jenkinsa, moje modyfikacje się zdarzają, a następnie następuje klonowanie repo. – user2569618

+0

Możemy Ci tylko pomóc, jeśli wyraźnie wyjaśnisz, co próbujesz zrobić. "wybierz zmiany i ustawienia" nie jest jasne. Nadal nie rozumiem, jaki jest twój rzeczywisty cel. – Chris

Odpowiedz

2

Najwyraźniej nie ma sposobu na odpytywanie repozytorium github, aby rozpocząć zadanie Jenkinsa, a nie pobranie wspomnianego repozytorium github.

-1

Pozwolę sobie zrozumieć tutaj swoje wymagania.

Chcesz monitorować repozytorium, ale nie wyciągać niczego, ilekroć ktoś się zaangażuje, aby dokonać repozytorium, chcesz sprawdzić integralność repo zamiast klonowania.

Nie widzę sensu dla powyższych wymagań, zamiast jenkins można mieć monitorowanie w tym samym miejscu.

Nadal chcesz to osiągnąć. Możesz ustawić zadanie bez określania adresu URL git w sekcji SCM, Możesz dodać kolejne w sekcji powłoki wykonuj.

git ls-remote <GIT-URL> 

(Upewnij się, że masz odpowiednie uprawnienia, aby zrobić to za pomocą powłoki).

Jeśli wszystko dobrze, otrzymasz wszystkie gałęzie, znaczniki i informacje o żądaniach pobierania, a następnie możesz zdecydować o statusie istniejącym.

Strona główna pomaga.

+0

Niestety, nie, to nie było pomocne. Staram się, aby Jenkins monitorował konkretne repozytorium github i rozpoczynało zadanie budowania w oparciu o zatwierdzenie do oddziału repo, ale nie chcę, aby zadanie kompilacji automatycznie wykonywało klon. – user2569618

+0

Testowałem powyżej, możesz chcieć zmienić strategię, aby dopasować się do Twojej konkretnej potrzeby. –

+0

Niestety, nie odpytuje repozytorium github, co jest moją potrzebą. Dziękuję Ci. – user2569618

-1

Zakładając, że konfigurujesz swoją pracę, aby sondować co minutę, czy to działa, aby osiągnąć ten cel?

git log --since="1 minute ago" | wc -l 

Musisz pobrać repozytorium podczas konfigurowania przestrzeni roboczej Jenkins, ale możesz później wyłączyć połączenie SCM.

3

Podczas gdy nie ma sposobu, aby odpytać repozytorium github, aby rozpocząć pracę bez wcześniejszego wciągnięcia kodu dla tego zadania, możesz obejść ten problem, używając jenkins multijob plugin do skonfigurowania zadania wielofazowego, skonfigurowanego w następujący sposób: :

  • Skonfiguruj zadanie główne, które znajduje się w WORKSPACE-A. Ta praca sprawi, że monitorowane przez ciebie repozytorium git zostanie przetestowane przez . Po wprowadzeniu zmiany, zadanie wywoła zmiany (których nie użyjesz), a następnie przystąpi do kompilacji, której kroki spowodują uruchomienie dwóch innych zadań w serii.
  • Skonfiguruj drugie zadanie, które będzie uruchamiane jako pierwsza faza kompilacji przez zadanie główne. Ta praca będzie znajdować się w WORKSPACE-B i nie śledzi repozytorium git .Zadanie to może wykonać dowolną z gotowych konfiguracji. Ponieważ istnieje w innym obszarze roboczym niż obszar roboczy master , nie zostanie zanieczyszczony przez kod źródłowy z git.
  • Skonfiguruj trzecie zadanie, które ma być wyzwalane jako druga i końcowa faza kompilacji przez zadanie główne. To zadanie może znajdować się w dowolnym miejscu, w którym jest to potrzebne - , w tym WORKSPACE-A lub WORKSPACE-B, jeśli tego chcesz. Możesz albo zlecić to zadanie powtórzenie tego samego zadania co zadanie główne, tak aby zmiany zostały automatycznie przeciągnięte do obszaru roboczego, lub skopiuj pliki sklonowane już z repozytorium git z WORKSPACE-A do obszaru roboczego zadania .

Uwaga: Tylko praca nadrzędna powinna mieć wyzwalacz budowania - ten związany ze zmianami repozytorium git. Pozostałe dwa zadania będą uruchamiane zewnętrznie z zadania głównego.