2016-09-08 5 views
1

Ich habe Jenkins schon seit ein paar Jahren benutzt, aber habe es nie selbst eingerichtet, was ich bei meinem neuen Job gemacht habe. Es gibt ein paar Fragen und Probleme, denen ich begegnet bin.Jenkins Project Artifacts und Workspace

Standardmäßiger Arbeitsbereich - Es scheint, als hätte Jenkins den Standardarbeitsbereich in Jenkins \ jobs [projectName] \ workspace und wird bei jedem Build überschrieben (oder gelöscht, falls ausgewählt). Ich dachte, dass es stattdessen in Jenkins \ jobs [projectName] \ builds [build_id] \ sein sollte, damit es den Arbeitsbereichstatus für jeden Build für zukünftige Referenz speichern konnte?

Arbeitsbereich auf dem Projekt anzeigen> Build_ID-Seite - Dies geht mit dem vorherigen, wie ich erwartet, jeden 'Arbeitsbereich' für vorherige Builds hier anzuzeigen. Momentan gibt es auf meiner individuellen Seite nichts anderes als die Git-Revision und welche Repo-Änderungen den Build ausgelöst haben. Sowie Konsolenausgabe. Wo sind die Artefakte? Wo ist der Link zum Arbeitsbereich dieses Builds, der verwendet wurde?

Archivierung von Artefakten in Builds - Bei der Auswahl von Artefakten scheint der Filter nicht zu funktionieren. Mein Build erstellt eine Dateistruktur mit den Artefakten darin im Arbeitsbereich. Ich möchte dies speichern und der Artefakte Filter sagt, dass es am Arbeitsbereich beginnt. Also lege ich "Artefakte" ein und nichts bekommt Speicher (auch wo würde das gespeichert werden?). Ich habe auch '/ Artefakte' und 'Artefakte/*' versucht.

Jede Hilfe wäre großartig! Vielen Dank!

+0

Für alle, die interessiert sind, Dinge direkt in die Artefakte für einen Build zu legen und sie auf der Build-Seite referenzieren zu lassen, einfach einen Ordner namens "archive" innerhalb der Build-Nummer erstellen und die Dateien dort entweder manuell oder über einen Batch-Skript. – Tacitus86

Antwort

4

Es scheint, als ob Sie über einige Aspekte von Jenkins verwirrt sind. Ich denke, Ihre Frage läuft im Wesentlichen auf das Folgende hinaus.

Was ist ein Unterschied zwischen einem Arbeitsbereich und einem Build?

So, hier sind einige Gedanken zu diesem Thema:

  1. historische Daten Builds sind. Sie ändern sich (normalerweise) nicht wie ein Arbeitsbereich während des Aufbaus/Checkouts.
  2. Builds enthalten Informationen über einen Lauf (z. B. Status, Build-Nummer, Änderungsprotokoll usw.) und alle Artefakte, die Sie archivieren (Protokolle, Testergebnisse usw.). Sie enthalten (normalerweise) keinen Quellcode wie ein Arbeitsbereich.
  3. Builds werden im Verzeichnis Jenkins\jobs\[projectName]\builds\[build_id]\ gespeichert. Dies ist ein Verzeichnis, das von Jenkins verwaltet wird und Sie (normalerweise) nichts in diesem Verzeichnis ändern müssen. Arbeitsbereiche sind jedoch Verzeichnisse, die für den Build gedacht sind, und Sie können mit ihnen praktisch alles machen und sie überall platzieren (es muss nicht im Standardverzeichnis sein.
  4. Arbeitsbereiche sollten jederzeit gelöscht werden können. Um es wiederherzustellen, erstellen Sie einfach den Job mit den gleichen Parametern/Revision neu.Wenn Sie etwas nach einem Build behalten müssen, sagen Sie Jenkins, es vor dem Build zu archivieren
  5. In Bezug auf die Rettung des gesamten Staates, ich don ' Wie Sie in # 4 erwähnt haben, sollten Sie in der Lage sein, denselben Build zu reproduzieren, indem Sie die gleiche Revision/Parameter wie der betreffende Build starten, wenn Sie nicht von derselben Revision in den ursprünglichen Zustand zurückkehren können/Parameter, dann könnte das etwas sein, das zu erreichen ist, da das Debuggen ein Albtraum sein wird :)
  6. Ein Arbeitsbereich ist ein Aspekt des Projekts und kein Build und deshalb gibt es auf dieser Seite keine Verknüpfung zum Arbeitsbereich. Auch hier wird ein Build nur Daten von einem vorherigen Lauf gespeichert. Ein Projekt verwendet den Arbeitsbereich zum Erstellen von Daten. Daher können Sie von dieser Seite aus auf den Arbeitsbereich zugreifen.
  7. In Bezug auf das Speichern von Artefakten müssen Sie die Namen der Dateien angeben, die Sie speichern möchten. Sofern Sie nicht versuchen, eine Datei namens "Artefakte" zu speichern, sollten Sie wahrscheinlich etwas anderes verwenden. Wie wäre es mit **/*.log für alle Protokolldateien? oder **/*.xml für alle XML-Dateien?

Hoffe, das hilft.

+0

Ich verstehe den Unterschied zwischen einem Build und einem Arbeitsbereich. Der Rest Ihres Posts erklärt jedoch, dass die Quelle nicht in den Artefakten gespeichert werden sollte. Auch das passt zu deiner # 7, ich verstehe nicht, warum es dieses Format sein sollte. Vielen Dank. – Tacitus86

+0

Froh zu hören, dass es ein wenig geholfen hat! Entschuldigung für das Missverstehen Ihrer Root-Frage. In Bezug auf # 7 verwenden die Archivartefakte die [ant fileset] (http://ant.apache.org/manual/Types/fileset.html), um Dateien zu vergleichen ... Wenn Sie Ich möchte ein paar Beispiele für die Ameisen-Dateigruppe, dann schaue ich mir [diese ausgezeichnete Antwort] an (http://stackoverflow.com/a/86915/6606196). –

Verwandte Themen