Ich verwende das Jenkins Multiple SCM-Plugin, um drei Git-Repositorys in drei Unterverzeichnissen in meinem Jenkins-Job auszuchecken. Ich führe dann einen Befehlssatz aus, um einen einzelnen Satz von Artefakten mit Informationen und Code zu erstellen, die aus allen drei Repositorys stammen.
Mehrere SCM werden jetzt abgeschrieben, und im Text wird empfohlen, auf Pipelines umzusteigen. Ich habe es versucht, aber ich kann nicht herausfinden, wie es funktioniert.
Hier ist die Verzeichnisstruktur, die ich von der obersten Ebene meines Jenkins-Jobverzeichnisses aus sehen möchte:
$ ls
Combination
CombinationBuilder
CombinationResults
In jedem dieser drei Unterverzeichnisse ist ein einzelnes Git-Repo ausgecheckt. Beim Multiple SCM habe ich git verwendet und dann das Verhalten "Auschecken in ein Unterverzeichnis" hinzugefügt. Hier war mein Versuch mit einem Pipeline-Skript:
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')
}
Der Befehl git scheint jedoch im obersten Verzeichnis des Arbeitsbereichs ausgeführt zu werden (was sinnvoll ist), und auch gemäß der Syntax scheint es kein Verhalten beim Auschecken in Unterverzeichnisse zu geben.