Es scheint nicht möglich zu sein, eine Jenkins-Datei als Buildschritt in einem Multi-Konfigurationsprojekt zu haben. Eine Jenkins-Datei wird in einem Pipeline-Job verwendet, der ebenfalls ein Jobtyp ist, und Jenkins unterstützt keine (einfache) Konvertierung zwischen Jobtypen. Darüber hinaus bedeutet ein Buildschritt, dass er auf einem bestimmten Knoten in einem Executor-Slot ausgeführt wird. Eine Jenkins-Datei wird jedoch auf dem Master ausgewertet und definiert selbst Buildschritte (mit ihren Knotenbeschriftungen), die inhärent kollidieren würden, wenn sie in einem Buildschritt selbst ausgeführt würden.
Es ist möglich, eine Pipeline über einen Job mit mehreren Konfigurationen auszulösen und sie mit den Parametern aus dem Job mit mehreren Konfigurationen zu versorgen. (Ich habe auch die parametrisierte Trigger-Plugin, dies zu tun)
Meine Pipeline Job hat zwei Textparameter, label
und version
mit einem Beispiel Jenkinsfile die wie folgt aussieht:
node(this.label){
println this.version
}
Mein Multi-Konfigurations-Job hat die folgende Konfiguration:
- eine benutzerdefinierte Achse
version
mit Werten alpha beta gamma
und eine Slave-Achse label
mit einem ausgewählten Knoten
- Die buildstep „Trigger/call baut auf anderen Projekten“ zu meinen Pipeline Job mit vordefinierten Parametern
version=${version}
und label=${label}
Dieser Aufbau führt zu der Pipeline Job auslösen 3 Mal aufgerufen wird (wie ich nur ein Knoten ausgewählt haben) , jedes Mal mit einer anderen Version und läuft auf meinem angegebenen Label. Hier ist eines der Protokolle:
[Pipeline] node
Running on master in /var/lib/jenkins/jobs/pipelinejob/workspace
[Pipeline] {
[Pipeline] echo
gamma
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Diese Lösung funktioniert, wenn Sie nur textbasierte Parameter oder Markennamen übergeben wollen. Es wird wesentlich schwieriger zu verwenden, wenn Sie etwas wie "Build mit verschiedenen Jdks" machen wollen. Ich hoffe, es ist trotzdem hilfreich.
Die Gewährung der Bounty bedeutet im Allgemeinen, dass Sie auch die Antwort akzeptieren sollten. – rbellamy