Jakie wtyczki i funkcje wtyczek muszę ustawić, aby moje zadanie Jenkinsa uruchamiało kompilację za każdym razem, gdy kod jest przydzielany do projektu SVN?
Zainstalowałem zarówno standardową wtyczkę SVN, jak i wtyczkę do tagowania SVN, ale nie widzę żadnych nowych funkcji umożliwiających konfigurację wyzwalacza.
svn
continuous-integration
jenkins
jenkins-plugins
IAmYourFaja
źródło
źródło
Odpowiedzi:
Można to zrobić na dwa sposoby:
Na początek polecam pierwszą opcję ze względu na łatwość jej wdrożenia. Gdy dojrzejesz w procesach kompilacji, przełącz się na drugą.
Sonduj repozytorium, aby zobaczyć, czy nastąpiły zmiany. Może to "pominąć" zatwierdzenie, jeśli dwa zatwierdzenia pojawią się w tym samym interwale sondowania. Opis tego, jak to zrobić , zwróć uwagę na czwarty zrzut ekranu, na którym konfigurujesz w zadaniu „wyzwalacz kompilacji” oparty na odpytywaniu repozytorium (z konfiguracją podobną do crontab).
Skonfiguruj repozytorium tak, aby miało punkt zaczepienia po zatwierdzeniu, który powiadamia Jenkinsa, że musi rozpocząć się kompilacja. Opis jak to zrobić tutaj , w sekcji „punkty zaczepienia po zatwierdzeniu”
Funkcja znacznika SVN nie jest częścią odpytywania, jest częścią promowania aktualnego „nagłówka” kodu źródłowego do tagu w celu wykonania migawki kompilacji. Pozwala to na odniesienie się do Jenkinsa buid # 32 jako tag / tags / build-32 SVN (lub coś podobnego).
źródło
Potrzebujesz tylko jednej wtyczki, którą jest wtyczka Subversion.
Następnie po prostu przejdź do Jenkins → nazwa_zadania → sekcja Wyzwalacz budowania → (i) Uruchom budowanie zdalnie (tj. Ze skryptów) Token uwierzytelniania: Token_name
Przejdź do katalogu hooks serwera SVN, a następnie po odpaleniu wykonaj poniższe polecenia:
cp post-commit.tmpl post-commit
chmod 777 post-commit
chown -R www-data:www-data post-commit
vi post-commit
Uwaga: Wszystkie wiersze powinny być komentowane. Na koniec dodaj poniższy wiersz
Składnia (dla użytkowników Linuksa):
Składnia (dla użytkownika systemu Windows):
źródło
Stworzyłem narzędzie używając Pythona z odrobiną basha, aby wywołać kompilację Jenkinsa. Zasadniczo musisz zebrać te dwie wartości z post-commit, kiedy zatwierdzenie trafi na serwer SVN:
Następnie użyj polecenia „svnlook dirs -anged $ 1 -r $ 2”, aby uzyskać ścieżkę, która została właśnie zatwierdzona. Następnie możesz sprawdzić, które repozytorium chcesz zbudować. Wyobraź sobie, że masz setki tysięcy projektów. Nie możesz sprawdzić całego repozytorium, prawda?
Możesz sprawdzić mój skrypt z GitHub .
źródło
Możesz użyć haka po zatwierdzeniu.
Umieść skrypt przechwytujący po zatwierdzeniu w
hooks
folderze, utwórz plikwget_folder
na dysku C: \ i umieśćwget.exe
plik w tym folderze. Dodaj następujący kod w pliku o nazwiepost-commit.bat
gdzie Test = nazwa zadania
echo
służy do wyświetlania wartości, aexit 2
na końcu można dodać, aby dowiedzieć się o problemie i czy skrypt przechwytujący po zatwierdzeniu jest uruchomiony, czy nie.źródło