2015-04-08 9 views
5

Chcę zsynchronizować dane kopii zapasowych Jenkins z repozytorium git. więc postępuję zgodnie z następującymi krokami:Synchronizacja SCM nie działa

1 - Ustawiłem git globalne poświadczenie w opcji GIT Jenkins pod konfiguracją.

2- zainstalowana SCM sync wtyczki i umieścić parametru konfiguracyjnego w jenkins scm synchronizacji konfiguracji zakładka repo url [email protected]: nazwa_użytkownika/jenkins_config.git

3 - zachowaj

ale otrzymuję poniżej błędu :

"Error while adding SCM file : fatal: Not a git repository (or any of the parent directories): .git"

Odpowiedz

3

Właśnie wpadłem na ten problem. Jako wstęp: ta wtyczka generalnie jest naprawdę frustrująca, ponieważ robi cokolwiek z powodu nieprzejrzystości i niepomyślności komunikatów o błędach. Mimo to, co sprawa faktycznie oznaczało w moim przypadku jest to jedna z niewielu rzeczy miałem zrobić, aby rozwiązać ten problem:

  1. że grupa dostęp Github miałem skonfigurowany dla mojego zapasowego-repo nie mają zapisu dostęp.
  2. W pewnym momencie repo został błędnie wpisany w config przeze mnie ([email protected]/ zamiast [email protected]:).
  3. Wreszcie, ta wtyczka wydaje się lubić restartuje się całkiem sporo. Po zmianie ustawienia uruchom ponowne uruchomienie Jenkinsa, aby uzyskać nowe komunikaty o błędach, które lepiej pomogą w zdiagnozowaniu problemu.

Oprócz tego, informacje zawarte w logu systemowym w hudson.plugins.scm_sync_configuration są szczególnie pomocne i często bardziej wymowne niż ogólne błędy strony.

+0

Gah, dziękuję. Nie próbowałem ponownie uruchamiać Jenkinsa, to działało (przynajmniej zaczęło dawać komunikaty o błędach, które miały sens, od tego momentu mogłem je łatwo naprawić). – Cameron

+0

Tak, ponowne uruchomienie jest kluczowe. –

1

Sekwencja ta pracował dla mnie z Git:

  1. Zainstaluj wtyczkę SCM Sync
  2. Wprowadź adres URL Git Repository w Jenkins> Konfiguracja> SCM Sync konfiguracja
  3. Restart Jenkins. W tym momencie wtyczka SCM Sync będzie zatwierdzać pliki tylko po ich zmianie. Wszystkie inne niezmodyfikowane pliki nie zostały zatwierdzone do Git.
  4. Usunięcie Adres URL repozytorium Git w Jenkins> Konfiguracja> Konfiguracja SCM Sync. Kliknij Zapisz.
  5. Odłóż Adres URL repozytorium Git w Jenkins> Konfiguracja> Konfiguracja SCM Sync. Kliknij Zapisz.
  6. W katalogu zarysowania, upewnij się, że wszystkie pliki są obecne przy użyciu:

    git clone [email protected]@github.com:username/jenkins_config.git 
    cd jenkins_config 
    find .

Mam nadzieję find wypisze wszystkie config.xml plików.

Zapisałem dokładne kroki, które wykonałem powyżej. Nie wiem, czy są one absolutnie konieczne (szczególnie kroki 2 i 4).Strategia polega na wielokrotnym ponownym uruchamianiu i usuwaniu/dodawaniu adresu URL repozytorium Git , dopóki nie zadziała.