Nie jest to tak proste, jak wykonanie sparametryzowanej kompilacji. Mam już określony proces kompilacji, który będzie budowany i wdrażany za każdym razem, gdy którakolwiek z tych gałęzi zostanie wypchnięta do GitHub:
Więc jeśli właśnie pchnąłem develop
i udało mi się zbudować, jak uruchomić kompilację ręczną i sprawić, by pociągnął feature/my-new-feature
(bez robienia a git push
)? Próbowałem umożliwiające sparametryzowanego build, dodając nowy ciąg nazwie branch
, a następnie dodanie nowego oddziału specyfikator, */$branch
. Następnie uruchomiłem kompilację i ustawiłem branch
na, feature/my-new-feature
ale nadal z niej korzystałem develop
.
Byłbym wdzięczny za każdą pomoc!
$branch
w polu specyfikatora gałęzi.$branch
spowoduje to, że będzie pusty ciąg.Odpowiedzi:
Najlepszym rozwiązaniem może być:
Dodaj parametr ciągu do istniejącego zadania
Następnie w
Source Code Management
sekcji zaktualizuj,Branches to build
aby użyć zdefiniowanego parametru ciąguJeśli zobaczysz pole wyboru z etykietą
Lightweight checkout
, upewnij się, że nie jest zaznaczone.Konfiguracja wskazana na obrazach powie zadanie jenkins, aby użyć go
master
jako domyślnej gałęzi, aw przypadku kompilacji ręcznych poprosi Cię o podanie szczegółów gałęzi (FYI: domyślnie jest ustawione namaster
)źródło
Branches to build
sekcji z cholernym repozytorium Git, do którego się odnosi? To głupie PITA, że trzeba to zrobić, aby określić gałąź do zbudowania.git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prune
która jest oczywiście nieważna.Nie sądzę, abyście mogli oboje w ramach tego samego zadania Jenkinsa, co musisz zrobić, to skonfigurować nowe zadanie Jenkinsa, które będzie miało dostęp do twojego github w celu pobierania gałęzi, a następnie możesz wybrać, który z nich ręcznie zbudować.
Po prostu oznacz go jako sparametryzowaną kompilację, określ nazwę i parametr skonfigurowany jako
git parameter
a teraz możesz skonfigurować opcje gita:
źródło
Aby zapłacić oddział za pomocą skryptów Jenkins, użyj:
źródło
To jest rozszerzenie odpowiedzi udzielonej przez Ranjitha
Sugerowałbym, abyś wybrał kompilację z parametrem wyboru i określił gałęzie, które chcesz zbudować. Parametr aktywnego wyboru
Następnie możesz określić gałęzie do zbudowania. Oddział do zbudowania
Teraz, kiedy będziesz budować swój projekt, otrzymasz opcję „Buduj z parametrami, gdzie możesz wybrać gałąź do zbudowania”
Możesz także napisać świetny skrypt, aby pobrać wszystkie gałęzie do parametru aktywnego wyboru.
źródło
Będzie dostępna opcja konfiguracji w obszarze Wyzwalacze kompilacji
Sprawdź gałęzie GitHub
Zostanie utworzony hak, a następnie możesz zbudować dowolną gałąź z Jenkinsa, gdy wybierzesz Github Branches
Mam nadzieję, że to pomoże :)
źródło
Run Branch Trigger
opcję, skanuje repozytorium git w poszukiwaniu wszystkich dostępnych gałęzi ... Po prostu zajrzyj do dzienników Jenkinsa -> w sekcji Zarządzaj Jenkinsem ... aby sprawdzić, czy wystąpiły błędyWidzę wiele dobrych odpowiedzi na to pytanie, ale nadal chciałbym udostępnić tę metodę, używając parametru Git w następujący sposób:
Podczas budowy rurociągu zostaniesz poproszony o wybranie gałęzi:
Następnie za pomocą świetnego kodu możesz określić gałąź, którą chcesz sklonować:
Zwróć uwagę, że używam wycinka od 7 do ostatniego znaku, aby zmniejszyć „origin /” i uzyskać nazwę gałęzi.
Również w przypadku, gdy skonfigurowałeś wyzwalacz webhooków, nadal będzie działał i przyjmie domyślną gałąź, którą podałeś (
master
w naszym przypadku).źródło