Wir versuchen, ein TeamCity-Projekt für ein Release-Tag zu definieren. Wenn wir bereit sind zu veröffentlichen, markieren wir trunk mit einem Tag, der die Versionsnummer enthält. Wir möchten, dass der Build-Prozess anhand dieses Tags überprüft wird. Wenn der Build abgeschlossen ist, verschieben Sie die Dateien in einen Ordner mit einem Namen, der ebenfalls auf der Versionsnummer basiert.
Wir sind nur daran interessiert, ein Projekt der "neuesten Version" zu haben, daher werden wir jedes Mal, wenn wir zu einer neuen Version wechseln, das bestehende TC-Projekt mit der neuen Versionsnummer neu konfigurieren.
Das Problem, das ich habe, ist die VCS-Root-URL (SVN) zu parametrisieren. Ich weiß, wie man Variablen für den Build einrichtet, die in den Build-Prozessen verwendet werden können, die wir verwenden könnten, um den Ordner zu konfigurieren, in den wir die Dateien verschieben. Ich finde jedoch keine Möglichkeit, eine Variable zu erstellen, auf die wir in der SVN-URL verweisen können.
Gibt es eine Möglichkeit, VCS-URLs von Variablen abzuleiten? Ist es möglich, eine Variable zwischen dem VCS-Stamm und der Projektkonfiguration zu teilen?
Ich glaube nicht, dass Team City dies unterstützt, Sie können Variablen innerhalb der VCS-Einstellungen nicht so weit verwenden, wie ich es bei meinem Versuch gefunden habe. Was ich getan habe, um dies zu umgehen, war, dass ich eine Eltern-Vorlage habe, die eine Root-VCS-Quelle definiert, SVN in meinem Fall, jede Build-Konfiguration wird aus dieser Vorlage erstellt, dann können Sie Checkout-Regeln rechts neben dem VSC-Namen definieren für eine bestimmte Build-Konfiguration auf der Registerkarte "Versionskontrolleinstellungen" und verwenden Sie Variablen dort. Ich kann also alle Build-Konfigurationen den gemeinsamen SVN-Root teilen und von dort aus spezifische Informationen definieren. Sie können diese Variable zu einer statischen festen Einstellung pro Build-Konfiguration machen, indem Sie sie im Bildschirm "Eigenschaften und Umgebungsvariablen" als Konfigurationsvariable konfigurieren oder sie als Benutzerparameter auf demselben Bildschirm, aber als System- oder Umgebungsvariable ausführen. Hoffe, das hilft.
Ab Version 6.5 erlaubt TeamCity die Verwendung von Parametern in VCS-Einstellungen: Parametrisierte Versionskontrollsystem-Roots
Ich bin mir nicht sicher, ob ich vollständig verstehe, wonach Sie fragen, also werde ich versuchen, dies Punkt für Punkt zu beantworten:
F: "Wir möchten, dass der Buildprozess basierend auf diesem Tag überprüft wird. Wenn der Build abgeschlossen ist, verschieben Sie die Dateien in einen Ordner mit einem Namen, der ebenfalls auf der Versionsnummer basiert."
A: Wenn Sie versuchen, die vcs-Wurzel dynamisch zu ändern, glaube ich nicht, dass dies möglich ist.
F: "Das Problem, das ich habe, ist die VCS-Root-URL (SVN)"
zu parametrisierenA: Hier sind einige Variablen, die helfen könnten:
% dep.btXX.vcsroot. {svn_branch} .client-mapping% - Dies zeigt an, was vcs root sieht. Sie müssen nur den richtigen Projektcode eingeben. % dep.btXX.env.BUILD_VCS_NUMBER% - VCS-Revisionsnummer des ersten VCS-Stamms, der an die Erstellungskonfiguration angehängt ist.
Ich hoffe, das hilft ... Aber es hört sich so an, als hättest du ein zu kompliziertes Setup. Wenn Sie die Schritte für mich durchgehen, könnte ich Ihnen vielleicht eine bessere Antwort geben.
Tags und Links svn teamcity continuous-integration