2017-05-31 4 views
1

CI-Dienste wie TravisCI erstellen und testen automatisch Anwendungen aus der Quellcodeverwaltung. Ich bin neu in C++ und Linux, aber es scheint, als ob das Wrappen von kompilierten Linux-Anwendungen in .deb- und .rpm-Pakete für verschiedene Linux-Distributionen eine sehr häufige Notwendigkeit für eine Build-Pipeline wäre. Ich habe ein paar Stunden lang gegoogelt und finde keine Dokumentation oder einen Verweis auf den vereinfachten Mechanismus in Travis oder anderswo, was das einfach macht. Vielleicht sind C++ - Entwickler daran gewöhnt, so etwas selbst zu machen, und sie schreiben es einfach im Build.Können Continuous Integration Services native Linux-Pakete erstellen?

Wenn Sie jedoch versuchen, die Pipeline für ein neues Team und Projekt mit mehreren Paketen einzurichten, die jeweils mehr als 5 Distributionen haben und die resultierenden Pakete testen möchten, ist dies ein perfekter Kandidat für eine CI-Pipeline. Wir möchten die Pakete auf Bintray bereitstellen, wo wir mehrere RPM- und DEB-Repositories vorbereitet haben, um Pakete für die verschiedenen Distributionen zu erhalten. Wir können jedoch keine Spur einer weit verbreiteten Lösung finden, die eine kompilierte Artefakt- und Paketdefinition verwendet, diese dann zusammenfasst und sie für diese Repos bereitstellt.

Hat jemand eine einfach zu bedienende und automatisierte Lösung zum Erstellen von Linux-Paketen, wie sie in Travis gebaut werden, bevor sie in einem Repository bereitgestellt werden?

+0

Sie sollten eine bestimmte Frage für ein bestimmtes Problem stellen. Da Stack Overflow den Close-Grund vor Ihnen versteckt: * "Fragen, die uns bitten, ein Buch, ein Tool, eine Softwarebibliothek, ein Lernprogramm oder eine andere Offsite-Ressource zu empfehlen oder zu finden, sind für Stack Overflow off-topic, da sie eher zu eigensinnigen Antworten und Spam neigen Beschreiben Sie stattdessen das Problem und was bisher getan wurde, um es zu lösen. "* – jww

Antwort

1

Sie können CPack dafür verwenden - es ermöglicht Ihnen, eine allgemeine Paketbeschreibung zu schreiben und eine RPM, Deb und MSI aus der Beschreibung zu erstellen.

0

Es könnte nicht einfach zu finden sein, weil es trivial ist, sobald die RPM specfiles eingerichtet sind, wo 95% der Probleme auftauchen. ;)

Ich habe Jenkins Spin Docker Container für jedes Ziel OS (CentOS 6, 7, Fedora 25) und bauen Sie die RPMs. Es unterscheidet sich nicht von jedem anderen "Shell-Script" Build-Schritt, außer dass make aufgerufen wird, ruft es rpmbuild auf.

+0

Danke für die Antwort. Ich verstehe, wie Dinge nach unserer Arbeit trivial erscheinen können. Objektiv gesehen ist es jedoch alles andere als trivial, einen vollständigen Prozess wie beschrieben einzurichten. Das von Ihnen beschriebene Szenario ist einfach sehr unterschiedlich. Sie erwähnen etwa 50% der Aufgaben, die im ursprünglichen Beitrag erforderlich sind. Sie beschreiben die Verwendung von Jenkins, bei der es sich um eine CI-Anwendung und nicht um einen CI-Dienst wie Travis handelt. Dies bedeutet, dass es auf einer VM gehostet und gewartet werden muss. Sie erwähnen auch nicht das Testen der Pakete. Wiederum ist das, wonach wir suchen, einfach anders. Wir untersuchen jetzt CPack, was vielversprechend ist. – solvingJ

+0

Der Punkt meiner Antwort ist, dass ich glaube nicht, dass Jenkins- oder Travis-spezifische RPMs erstellt werden, sobald das grundlegende RPM-Building funktioniert. –

Verwandte Themen