Wie sollte ich meine setup-CI (jenkins) für deb-Pakete?
Habe ich ein CI-setup mit Jenkins und Artifactory für Java. Ich möchte auch das erstellen und bereitstellen von deb-Paketen. Für den Bau der deb-Pakete, die ich verwenden könnte, ein Maven-plugin (Aufruf von Gradle), z.B., http://mojo.codehaus.org/deb-maven-plugin/.
Ich bin jetzt forschen Debian-repository-Implementierungen. Ich würde mich gerne bereitstellen, ein eigenes Debian-repository-host für meine Pakete (http://wiki.debian.org/HowToSetupADebianRepository).
Gibt es irgendein plugin in Jenkins, die es einfacher machen würde, bereitstellen deb-Pakete? Die debian-repository-Implementierung soll ich verwenden?
- Gibt es auch (und viel Glück finden die Dokumentation für diese) die
org.mortbay.jetty.toolchain:unix-maven-plugin
die verwendet werden können, zu erstellen.deb
- Dateien. Hier ist ein Beispiel: github.com/stephenc/jetties/blob/master/jetty-deb/pom.xml - Möchten Sie vielleicht einen Blick auf jenkins.debian.net
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht bewusst ein Debian-Paket plugin für Jenkins, und ich finde nicht das maven-ZP-plugin geeignet für meine Bedürfnisse (siehe "Was funktioniert nicht" auf Seite Sie verbunden). Wo habe ich ein maven-build-Jobs in Jenkins füge ich ein post Schritt shell-Skript, das erhöht die version in debian/changelog und dpkg-buildpackage -b -nc.
-nc unterdrückt einen sauber aufzubauen, die notwendig ist, weil mein debian/rules-Datei wird sonst versuchen, die maven targets zu bauen, die Gläser, die Jenkins hat dies schon getan. Snippet von meinem debian/rules:
So, nachdem der maven-Schritte in Jenkins führt es auch die folgenden
Dieser Teil ist persönliche Vorliebe, aber ich habe nicht Jenkins push-debs gebaut sofort zu meinem repository. Stattdessen speichert es die .deb und .änderungen an Dateien, wie build-Artefakte, so dass ich verwenden können, die Gefördert Builds Plugin zu Unterschreiben .ändert die Datei, und kopieren Sie es in das repository (rsync). So können meine Entwickler herunterladen und testen der deb aus, Ehe es geschoben zu werden, um unsere staging-repository. Eine zweite Förderung können dann verwendet werden, um die push-Paket zu einem live-repository.
Wählte ich reprepro als unsere repository-manager. Seine ein großer Nachteil ist, dass es nicht verarbeiten kann mehr als eine version eines Paketes in einer distribution, auf einmal die macht rollback mehr schmerzhaft. Davon abgesehen, finden es zuverlässig und brauchbar, und nun ist er komplett Spiegel der wichtigsten Debian-repositories sowie die Verwendung als host für meine privaten repos.
Reprepro verwendet inoticoming, um vor Ort neue eingehende Pakete und überprüft die Signatur auf die änderungen der Datei, um sicherzustellen, dass nur Jenkins hinzufügen können neue Pakete.
Ich finde einige der reprepro online-Dokumentation fehlt, aber ich empfehlen, es zu installieren und das Lesen der reprepro und inoticoming man-Seiten.
Debian-Paket-Builder-Plugin für Jenkins
Nur hinzufügen, meine 2 cents zu diesem post.
Intern nutzen wir Fracht (https://github.com/rcrowley/freight#readme) als unseren Debian/Ubuntu-repository.
Viele von uns neigen dazu, zu verwenden, fpm (https://github.com/jordansissel/fpm#readme) von Jordan Sissel für das erstellen von debs für den internen Gebrauch.
Dies kann leicht scripted in Ihrem Quellcode-repository, so wie ich hier:
https://github.com/stuart-warren/logit/blob/master/make-deb
Natürlich könnten Sie einfach kopieren, in jeder kompilierten Dateien direkt herunterzuladen anstatt von einem server, maven-repo in meinem Fall.
Dann können Sie mit SCP die deb-bis auf einige "incoming" - Verzeichnis auf Ihrem repository-server.
Ja, es ist ein plugin, das hilft mit der Bereitstellung von Debian-Pakete in den Paket-repositories. Die Debian-Paket-Builder-Plugin hat zwei Funktionen: einen build-Schritt (die Sie scheinen nicht zu müssen), und eine post-build-publishing Schritt. Ihr Ziel-repositories konfiguriert sind, in der system-Konfiguration. Wählen Sie einfach eine von Ihnen in der job-Konfiguration. Das plugin verwendet dupload(1) "unter der Haube".
Als repository-manager für Debian-Pakete, die ich empfehlen Treffend. Es ist leistungsstark, leicht zu bedienen, gut dokumentiert und wird aktiv entwickelt.