Jobvererbung in Jenkins Jobs
Wie gehen Sie mit mapping-Jenkins-jobs zur build-Prozess und haben Sie in der Lage gewesen zu bauen, in kaskadierende Konfigurationen auf Vererbung?
Für einen bestimmten build werde ich haben, mindestens drei Arbeitsplätze (standard-continuous integration/übernachtungs -, Sicherheits-Scans, Berichterstattung) und dann einige downstream-integration testing-jobs. Die Konfiguration slicer-plugin behandelt einige Aspekte Kreuz jobs, aber jedem Job immer noch sehr viel seine eigene, individuelle Entität ohne Beziehung zu anderen Aufgaben in seiner Gruppe.
Vor kurzem sah ich QuickBuild und es hat job Vererbung, wo ein Elternteil können jobs definieren, die eine standard-Gruppe der Schritte und die seiner Kinder aufheben kann und sich spezialisieren. Mit Jenkins, ich habe Kopien von Arbeitsplätzen, was in Ordnung ist, bis ich etwas ändern muss. Mit QuickBuild die Beziehung zwischen Beschäftigung erlaubt mir, mich zu verbreiten, meine änderungen mit wenig Aufwand.
Habe ich versucht herauszufinden, wie das zu handhaben in Jenkins. Ich konnte das parametrisierte build-trigger-plugin zu ermöglichen, Arbeitsplätze zu nennen, die anderen und überschreiben Aspekte. Ich würde dann die Ernte der Daten aus der genannten Arbeitsplätze an den Aufrufer. Ich vermute, ich werde laufen, in eine Reihe von Problemen, bei denen es gibt Aspekte, die kann ich nicht überschreiben, wird die Kraft von mir zu implementieren Jenkins Funktionen in meinem script so machen, Jenkins weniger nützlich.
Wie gehen Sie mit der Komplexität in Ihren build-jobs in Jenkins? Haben Sie gehört, der keine ernsthaften Probleme mit QuickBuild?
InformationsquelleAutor der Frage Peter Kahn | 2011-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchte ich Sie darauf hinweisen, die Version von einem plugin, dass sich mein team entwickelt hat und erst vor kurzem veröffentlicht unter open-source.
Es implementiert den vollen "Vererbung zwischen jobs".
Hier für weitere links, die Ihnen helfen könnten:
InformationsquelleAutor der Antwort Norman
Ich hatte so ziemlich das gleiche problem. Wir haben eine Reihe von jobs, die ausgeführt werden muss für unsere Stamm-als auch mindestens zwei Branchen. Die äste repräsentieren die Versionen, und eine neue Verzweigung erstellt wird, alle paar Monate. Die Schaffung neuer Arbeitsplätze, von hand ist dies keine Lösung, so dass ich ausgecheckt einige Möglichkeiten.
Eine Möglichkeit ist die Verwendung der template plugin. Dies ermöglicht Ihnen, erstellen Sie eine Hierarchie der Arbeitsplätze, die von einer Art. Es bietet erbschaft für Bauherren, Verleger und SCM-Einstellungen. Vielleicht funktioniert für einige, für mich war es nicht genug.
Zweite Sache, die ich ausgecheckt wurde die Ant-Skript für die job-Klonen und seine Geschwister die Bash-Skript. Diese sind wirklich großartig. Die Idee ist, dass das Skript eine neue Aufgabe erstellen, kopieren Sie alle Einstellungen aus einer Vorlage, job, machen änderungen, wie Sie Sie benötigen. Da dies ein script ist sehr flexibel und Sie können eine Menge tun. Einziger Nachteil ist, dass dies nicht zum Ergebnis, dass eine echte Hierarchie, so dass änderungen in der Vorlage wird der job nicht unbedingt auf Aufträge, die sich bereits geklont, nur auf Arbeitsplätze, die geschaffen werden, die Zukunft.
Blick auf die Nachteile und Vorzüge von diesen zwei Lösungen, eine Kombination von beiden könnte am besten funktionieren. Erstellen Sie eine Vorlage-Projekts mit einigen grundlegenden Einstellungen, die gilt für alle Arbeitsplätze, und dann mit einem bash-oder ant-Skript, um Arbeitsplätze zu schaffen, je nach Vorlage.
Hoffe, das hilft.
InformationsquelleAutor der Antwort pushy
Wurde ich gefragt, was unsere eventuelle Lösung für das problem war... Nach vielen Monaten der Kämpfe mit unserem Einkaufssystem wir verbrachten etwa $4000, die UNS auf Quickbuild. In einer etwa 2-3 Monaten hatten wir eine vorgefertigte build-system an Ort und Stelle und waren sehr glücklich mit ihm. Bevor ich das Unternehmen verlassen, wir hatten mehrere Produktgruppen in das system und wurden die Automatisierung des release-Prozesses.
Quickbuild war ein großartiges Produkt. Es sollte in die $40k Klasse, aber es ist preislich sehr viel weniger. Während ich bin sicher, dass Jenkins konnte dies tun, wäre es ein bisschen ein Durcheinander in der Erwägung, dass Quickbuild hatte diese Funktionalität gebacken. Ich habe realisiert komplexe Verhaltensweisen auf der Oberseite der Produkte vor (z.B. die änderungsverfolgung im SVN 1.0) und es bereut. Quickbuild war preiswert und bot eine solide Basis für unser build-und test-Systeme.
Zur Zeit bin ich in einer Firma mit Bambus und hoffe, dass seine neuen feature-branch-Funktion bieten wird, vieles von dem, was Quickbuild tun können
InformationsquelleAutor der Antwort Peter Kahn
Wir verwenden Sie quickbuild, und es scheint gut zu funktionieren, für die meisten Dinge. Ich habe sogar in der Lage, Ihre APIs zu schreiben, benutzerdefinierte Plug-ins. Ein Bereich, in dem quickbuild fehlt, das ist die sonar-integration. Das sonar-team hat ein Jenkins-plugin und nicht eine für quickbuild.
InformationsquelleAutor der Antwort Josh Angolano