2011-01-07 12 views
9

Wenn Sie sich auf der Artefaktseite in TeamCity befinden, können Sie alle Artefakte als Zip-Datei herunterladen.TeamCity Zipped Artifact Dependency

Ich frage mich, ob Sie abhängige Build-Konfigurationen einrichten können, um tatsächlich die gezippte Version der Artefakte zu greifen?

Ich weiß, ich könnte alle Artefakte in der Projektkonfiguration zippen, die sie zunächst erstellt, aber das möchte ich lieber nicht tun.

Alternativ könnte ich etwas wie Nant verwenden, um sie zu zippen, sobald sie überbracht sind, aber ich könnte mir vorstellen, dass die Übertragung dieser Artefakte wahrscheinlich ein bisschen schneller gehen würde, wenn die gesendeten Dateien zuerst gezippt wurden.

Kennt jemand eine Möglichkeit, die gezippten Artefakte von jedem der anderen Projekte zu übertragen oder wird dies von TeamCity unterstützt?

+0

Haben Sie jemals eine Antwort darauf gefunden? – reach4thelasers

Antwort

17

Yep arbeiten. Dies ist zumindest mit der aktuellen Version von TeamCity (6.5.3) ziemlich einfach. In Ihrem „main“ Projekt, erstellen Sie den ZIP-Artefakt:

MyProjectBuildFolder\** => mybuild-%system.build.number%.zip 

nach dem Build, werden Sie alle Ihre Dateien im Zip-Artefakt sehen. Erstellen Sie dann eine neue Buildkonfiguration. Sie möchten die Abhängigkeiten dieses Builds bearbeiten und eine neue "Artefaktabhängigkeit" hinzufügen. Bearbeiten Sie seine Eigenschaften wie folgt:

  1. abhängig von: Die Build-Konfiguration von Ihrem Hauptprojekt von oben.
  2. Get Artefakte aus: Letzte erfolgreichen Build
  3. Artefakte Pfade: Wenn Sie nur die Zip-Datei kopieren möchten, wird diese *.zip sein. Wenn TeamCity die ZIP-Datei für Sie entpacken soll, verwenden Sie *.zip!**.
  4. Zielpfad:% some.parameter.representing.your.path%

Nun, wenn der Läufer für die abhängige Build wird gekickt, wird es das neueste Zip-Archiv von Ihrem Hauptprojekt packen und entpacken es in den Zielordner Ihres abhängigen Builds.

0

Wahrscheinlich könnten Sie gepackte Artefakte manuell in Ihrem ersten Erstellungsschritt erhalten, indem Sie eine URL für die abhängige Konfiguration erstellen. Im Build können Sie Parameter Ihrer abhängigen Builds abrufen, die Ihnen beim Erstellen der URL helfen können.

URL wie folgt aussieht: http://your.server/(guestAuth|httpAuth)/repository/downloadAll/bt457/12345:id/artifacts.zip

wo bt457 - id Ihre Build-Konfiguration 12345 - ID des abhängigen Build bauen, die Sie sollten in Ihrem Build als Systemeigenschaft dep.bt457.teamcity erhalten können .build.id

mehr hier lesen: http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters#PredefinedBuildParameters-DependenciesProperties

von all dies nicht sehr elegant, aber es sollte

Verwandte Themen