Problemumgehung: Aggregierte downstream-test-Ergebnisse
Soweit ich weiß, wird die Funktion "Aggregat downstream-test-Ergebnisse" funktioniert nicht wie erwartet (und es ist sehr schwer zu finden nützliche Dokumentation). Ich möchte eine sehr ähnliche Funktionalität:
Job Bauen Trigger jobs T1, T2 parallel (wo T1 tut, FindBugs, T2 tut PMD).
Szenario 1:
Sobald T1 und T2 fertig sind (was kann ich erreichen mit der "Join" - plugin) ich möchte zum sammeln der Artefakte (T1/findbugs.xml und T2/pmd.xml). Dann werden diese analysiert und nette Statistiken erstellt werden.
Szenario 2 (dabei mag ich mehr):
Wie Szenario 1, aber die Analyse ist als Teil T1 und T2 (parallel!). Sobald T1 und T2 fertig sind, werden die Ergebnisse der Analyse zusammengefasst, nette Statistiken.
Meine Fragen:
Für Szenario 1, ich weiß nicht, wie auf der downstream-Projekte T1 und T2. Ich konnte die letzten erfolgreichen build, aber das scheint mir komisch, wenn man viele parallele jobs.
Für Szenario 2 habe ich keine Idee, wie Sie die Daten importieren, die benötigt wird für die FindBugs/PMD/Checkstyle/SLOCcount/... plugins, so dass die entsprechenden Grafiken (auch?) erscheinen außerhalb der T1/*T2*.
Dank,
Carsten
- Ich denke, diese Frage kann verallgemeinert werden zu: Wie kann ich den Wissenstransfer aus (fertig) nachgelagerte Arbeitsplätze in der direkten upstream-job ausgelöst werden diese jobs (oder ein direkter Nachfolger des upstream-job)? Soweit ich weiß, Jenkins konzentriert sich auf die andere Richtung (abrufen von Informationen aus vorgelagerten Arbeitsplätze).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Ergänzungen malenkiy_scot post:
Braucht man eigentlich nicht ein Skript für Schritt 3 in der Beschreibung: "kopieren von Artefakten aus einem anderen Projekt" build-Schritt erlaubt die Angabe der Quell-Auftrag einschließlich der Parameter, die bereits.
Beispielsweise mit Hilfe der Eltern, die Schreibweise, es kann zu kopieren Artefakte von der korrekten Ausführung der Arbeit
D
mithilfeD/PARENT_ID=EXPECTED_VALUE
als "project name".Statt manuell verketten
$JOB_NAME
und$BUILD_ID
Sie können die vordefinierten$BUILD_TAG
(was tut im wesentlichen das gleiche). Sehen https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables für die vollständige Liste der standard-Umgebungsvariablen.Hier ist eine Anleitung für eine etwas einfachere Szenario, aber ich denke, man kann leicht verallgemeinern, um Ihren Fall von mehreren nachgelagerten Arbeitsplätze. Der trick ist die Verwendung von "Kennzeichnung" Parameter in die nachgelagerten Arbeitsplätze.
Lassen P werden, den übergeordneten Auftrag und D ein downstream-job.
Wenn mit Python (das ist, was ich Tue) - nutzen Python-wrapper JenkinsAPI. Wenn Sie mit groovig - nutzen Groovy-Plugin und führen Sie Ihr Skript als system-Schrift. Sie können dann Zugriff auf Jenkins über seine Java-API.
Jenkins Plugin https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin sollten Hilfe bei solchen Anforderungen.