Gibt es eine Möglichkeit, mehrere Artefakte aus demselben Build zu speichern / zu archivieren?
Jenkins erlaubt nur einen einzigen Post-Build-Schritt zum Archivieren der Artefakte und deaktiviert die Option, nachdem sie einmal verwendet wurde.
Vielleicht ArtifactsArchiver
erlaubt das mehrere Muster?
jenkins
jenkins-plugins
Thunderbird
quelle
quelle
Antworten:
Sie können ein Muster im Ameisenstil verwenden , z. B.
target/*.jar
um mehrere Artefakte zu archivieren.Und es ist möglich, eine durch Kommas getrennte Liste von Mustern zu verwenden, wenn Ihre Dateien nicht mit einem Muster abgeglichen werden können, z
target/*.jar, target/*.war
.Das ? Die Schaltfläche neben dem Eingabefeld zeigt diese Informationen an.
quelle
,
in der Antwort angegebene Komma , um verschiedene Dateigruppen zu trennen.archiveArtifacts '<folder_name>/**
Sie können die Pfade wie folgt durch Kommas trennen:
Dann erhalten Sie zwei separate Artefakte.
Weitere Informationen zur Ant Pattern- Syntax finden Sie unter http://ant.apache.org/manual/Types/fileset.html .
quelle
Wenn Sie zwei verschiedene Dateitypen wie Zip-Dateien und HTML-Dateien speichern möchten, können Sie diese verwenden
Es wird Ihnen helfen, alle Zip-Dateien und HTML-Dateien in diesem Verzeichnis zu archivieren.
quelle
Nein, Jenkins bietet nicht nur ein Artefakt zum Speichern. Sie können ein Wildcard-Muster verwenden, um eine beliebige Anzahl von Artefakten zu verwenden, z. B. All Jars - ** / *. Jar All War - ** / *. War und so weiter.
** / bedeutet ein beliebiges Verzeichnis.
quelle
Alle Antworten hier zeigen, wie mehrere Dateimuster zu einem Artefakt kombiniert werden können, was vom OP nicht verlangt wurde.
Ein Beispiel für die Anforderung ist die Erstellung einer Single Page Web App, in der umgebungsspezifische Einstellungen in JavaScript für QS, Staging und Produktion kompiliert wurden.
Da Sie denselben Build in mehreren Umgebungen bereitstellen möchten, benötigen Sie drei Builds mit jeweils eigenen Umgebungseinstellungen. Wenn Sie das Archiv bereitstellen, möchten Sie nicht den Inhalt aller drei in jeder Umgebung bereitstellen und nur den Inhalt für diese eine Umgebung extrahieren, da das Kopieren von 66% mehr teuer ist als jedes Mal erforderlich und fehleranfällig sein kann.
Es ist daher sinnvoll, zwei oder mehr Builds in ihre eigenen Artefakte zu generieren und je nach Zielumgebung eines dieser Artefakte bereitzustellen.
Jenkins sollte mehrere Artefakte unterstützen und nicht nur 1 Artefakt größer machen.
quelle