Vielleicht kann Jenkins Ihnen helfen. Sie bieten einen stash/unstash Schritt. Das bedeutet, dass Sie die settings.xml
auf dem Master-Knoten speichern und auf Ihrem Slave, der den Build ausführt, auflösen. Ich denke, dass zur Zeit stash/unstash nur Unterverzeichnisse des aktuellen Pipeline-Arbeitsbereichs unterstützt, aber Sie könnten es umgehen, indem Sie das settings.xml
in den aktuellen Arbeitsbereich kopieren, bevor Sie es stashing. Das Ganze könnte so ähnlich aussehen:
stage('Build') {
node('master') {
sh 'cp /path/to/master-node-settings-xml .'
stash includes: 'settings.xml', name: 'settingsXml'
}
node('slave') {
unstash 'settingsXml'
sh 'mv settings.xml /path/to/slave-node-settings-xml'
# Start your build here now ..
}
}
Eine weitere Möglichkeit der settings.xml
in das Docker Bild zu backen vorge wäre, die Sie die Sklaven in Kubernetes spin up verwenden. Natürlich wäre dies keine optimale Lösung, wenn sich Ihre settings.xml
dynamisch ändert oder irgendeine Art von sensiblen Daten enthält (so wie Sie es vermeiden sollten, wenn möglich vertrauliche Informationen in ein Docker-Image zu legen).