Wo und wie speichert Hudson / Jenkins Daten?

18

Ich habe Jenkins auf Ubuntu 10.10 installiert und konnte keine Erwähnung für das Einrichten einer Datenbank für die Datenbeständigkeit finden.

Die erste Frage ist also, wo die Daten gespeichert werden, und zweitens, können wir Hudson / Jenkins mit mySQL einrichten? oder ähnliche datenbanken?

Kamal
quelle
In einem Dateisystem, in der Regel, so etwas wie /var/lib/jenkins/, /var/jenkins_home/oder /home/jenkins/.
Ondra Žižka

Antworten:

11

Hudson / Jenkins funktioniert so nicht ganz. /var/lib/jenkinsStandardmäßig werden Konfigurationen und Auftragsinformationen gespeichert (wenn Sie das DEB-Paket verwenden). Wenn Sie die Persistenz für eine bestimmte Anwendung einrichten möchten, sollten Sie dies selbst tun - Hudson ist ein Continuous Integration Server, kein Testframework.

Lesen Sie den Wiki-Artikel zu Continuous Integration, um einen Überblick darüber zu erhalten, was Sie erwartet.

Andrew M.
quelle
2
@Redmumba Ich verstehe, dass es sich um einen CI-Server handelt, aber ich habe nur die Möglichkeit untersucht, mit ihm Unit-Tests durchzuführen und die Ergebnisse in einer Datenbank statt in Flar-Dateien zu speichern. B. Jenkins KANN zum Fahren und Anzeigen von Tests verwendet werden. Irgendwelche Gedanken?
Kamal
Ein Build ist viel mehr als eine Kompilierung (oder ihre dynamischen Sprachvariationen). Ein Build kann unter anderem aus dem Kompilieren, Testen, Überprüfen und Bereitstellen bestehen. Ein Build fungiert als Prozess zum Zusammenstellen des Quellcodes und zum Überprüfen, ob die Software als zusammenhängende Einheit funktioniert.
Kamal
1
Wie gesagt, Jenkins ist nur ein CI-Server - es ist kein Framework. Jenkins führt nur die von Ihnen angegebenen Skripte aus. Dabei spielt es keine Rolle, wie viel Speicherplatz vorhanden ist, welche Sprachen Sie verwenden oder was Sie gerade tun. Das ist, wo ich denke, die Trennung ist - Jenkins bietet keinen dauerhaften Speicher für Ihre Anwendung usw.
Andrew M.
1
ref: aus dem Buch "Continuous Integration: Viele betrachten CI ohne automatisiertes, kontinuierliches Testen nicht als CI. Mehr können wir nicht vereinbaren. Ohne automatisierte Tests ist es für Entwickler oder andere Projektbeteiligte schwierig, Vertrauen in Softwareänderungen zu haben. Die meisten Entwickler von Projekten, die ein CI-System verwenden, verwenden Unit-Testing-Tools wie JUnit, NUnit oder andere xUnit-Frameworks, um Tests auszuführen. Außerdem können Sie verschiedene Kategorien von Tests auf einem CI-System ausführen, um die Erstellung zu beschleunigen Einheit, Komponente, System, Last / Leistung, Sicherheit und andere
Kamal
1
Richtig; Wir sind also auf der gleichen Seite. Jenkins führt diese Dinge aus - es verwaltet keine Persistenz-Layer, Test-Frameworks, Build-Tools (außer Ant) usw. Sie müssen Ihre Persistenz-Layer und Tests separat erstellen. Jenkins kann Unittests grafisch darstellen, wenn sie im xunit-Format ausgegeben werden, was in den Java-Test-Frameworks vorgesehen ist. Viele andere Sprachen (wie Pythons Nase) werden auch in diesem Format ausgegeben.
Andrew M.
6

Jenkins scheint Daten zu speichern, basierend darauf, was Ihre Skripte tun und wie.

Als Beispiel; Die Skripte, die Ihre täglichen Festschreibungs-Builds ausführen, können so eingerichtet werden, dass die "Pass / Fail" -Ergebnisse an Jenkins übergeben werden, um sie in einer XML-Datei zu speichern. Wenn Sie jemals daran interessiert sind, die historischen "Bestanden / Nicht Bestanden" -Ergebnisse abzurufen und an einer anderen Stelle als in der Jenkins-GUI zu verwenden, können Sie die Jenkins-API aufrufen und eine Rückgabe dieser XML erhalten. Analysieren Sie es und Sie haben die Daten, die Sie benötigen.

Aber - Abgesehen davon hat Jenkins kein einziges Endlagersystem.

Darüber hinaus finden Sie im Folgenden die API-Informationen für Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

Jag
quelle
2

Die Antwort ist, dass Jenkins dies nicht für Sie einrichten wird. Sie müssen angeben, wie die Umgebung eingerichtet und die Tests ausgeführt werden sollen. Dies erfolgt normalerweise im Abschnitt mit den Erstellungsschritten. Wenn Sie weitere Informationen darüber geben, welche Plattform Sie verwenden, können wir Ihnen möglicherweise eine konkretere Antwort geben. Sie könnten ein Shell-Skript haben, das Ihre Anwendung installiert und deren Tests ausführt, und das Sie dann von Hudson aus aufrufen. Der Testläufer gibt Daten auf eine hudsonfreundliche Art und Weise aus, damit die Ergebnisse Ihrer Tests in die Web-Benutzeroberfläche übertragen und dort angezeigt werden können.

Jorge Vargas
quelle
2

Es speichert Daten in Ihrem Home-Verzeichnis in einem .jenkinsVerzeichnis. In diesem Verzeichnis finden Sie alle relevanten Informationen zu Ihren Builds.

Jenkins bietet keine eingebaute Unterstützung für die Verbindung zu einer Datenbank.

user257831
quelle