Używam wtyczki Jenkins Multiple SCM do sprawdzenia trzech repozytoriów git w trzech podkatalogach w mojej pracy Jenkinsa. Następnie wykonuję jeden zestaw poleceń, aby zbudować pojedynczy zestaw artefaktów z informacjami i kodem pobranym ze wszystkich trzech repozytoriów.Używanie potoku Jenkinsa do kasowania wielu repozytoriów git do tej samej pracy
Wiele SCM jest obecnie amortyzowanych, a tekst zaleca przejście do potoków. Próbowałem, ale nie mogę wymyślić, jak to działa.
Oto struktura katalogów Jestem ciekaw z górnego poziomu mojego Jenkins katalogu pracy:
$ ls
Combination
CombinationBuilder
CombinationResults
Każdy z tych trzech podkatalogów ma pojedynczy git repo wyrejestrowany. Używając Multiple SCM, użyłem git, a następnie dodałem zachowanie "checkout to a subdirectory". Oto moja próba z skryptu rurociągu:
node('ATLAS && Linux') {
sh('[ -e CalibrationResults ] || mkdir CalibrationResults')
sh('cd CalibrationResults')
git url: 'https://github.com/AtlasBID/CalibrationResults.git'
sh('cd ..')
sh('[ -e Combination ] || mkdir Combination')
sh('cd Combination')
git url: 'https://github.com/AtlasBID/Combination.git'
sh('cd ..')
sh('[ -e CombinationBuilder ] || mkdir CombinationBuilder')
sh('cd CombinationBuilder')
git url: 'https://github.com/AtlasBID/CombinationBuilder.git'
sh 'cd ..'
sh('ls')
sh('. CombinationBuilder/build.sh')
}
Jednak komenda git wydaje się wykonać w głównym katalogu obszaru roboczego (co sprawia, że jakiś sens), a zgodnie ze składnią też nie robi wydaje się być zachowaniem kasowym do podkatalogu.
doskonały, że wystarczyły, dzięki! Powoli uczę się rurociągów. Żałuję, że całe oprogramowanie nie zdecydowałoby się na jeden DSL za wykonanie pracy. Musiałem się wiele nauczyć. :-) – Gordon
jak powrócić do katalogu $ WORKSPACE/the pipeline? Muszę powrócić do kontekstu globalnego, aby wykonać niektóre skrypty. Katalog przełącza kontekst i pozostawia go tam. Ostatnie polecenie "ls" wyświetli zawartość repozytorium CombinationBuilder. –
Jak korzystać z różnych poświadczeń dla repo? Tzn. Moje "główne" repozytorium (które Jenkins monitoruje, aby uruchomić zadanie) mieszka w Bitbucket, i chcę sklonować istniejące repozytorium Githuba wewnątrz kompilacji, jak określić jeden zestaw kredytów dla Bitbucket i inne dla Github ? –