Ich arbeite daran, Jenkins für unsere Release-Builds einzurichten. Ein Release-Build besteht aus einem Windows-Installationsprogramm, das einige Binärdateien enthält, die unter Linux erstellt werden müssen.
Folgendes habe ich bisher:
- Der Windows-Teil und der Linux-Teil werden als separate Jenkins-Projekte eingerichtet.
- Das Windows-Projekt wird parametrisiert, wobei das Subversion-Tag zum Erstellen und Freigeben verwendet wird.
- Als Teil seines Builds löst das Windows-Projekt einen Build desselben Subversion-Tags für das Linux-Projekt aus (mithilfe des Plugins " Parametrisierter Trigger" ) und kopiert dann die Artefakte aus dem Linux-Projekt (mithilfe des Plugins " Artefakt kopieren" ) in den Arbeitsbereich des Windows-Projekts Sie können im Windows-Installationsprogramm enthalten sein.
Wo ich feststecke: Im Moment ist Copy Artifact so eingerichtet, dass es den letzten erfolgreichen Build kopiert. Es scheint robuster zu sein, Copy Artifact so zu konfigurieren, dass es genau aus dem Build kopiert wird, den der parametrisierte Trigger ausgelöst hat, aber ich habe Probleme, herauszufinden, wie das funktioniert. Es gibt eine Option für einen "Build Selector" -Parameter, von dem ich denke, dass er dabei helfen soll, aber ich kann nicht herausfinden, wie er eingerichtet werden soll (und blindes Experimentieren mit verschiedenen Möglichkeiten ist etwas schmerzhaft, wenn der Build eine Stunde dauert oder zwei, um Erfolg oder Misserfolg zu finden).
Wie soll ich das einrichten? Wie funktioniert der Build Selector?