2016-05-12 6 views
0

In meinem Projekt habe ich eine Versionsnummer und eine Revisionsnummer. Die Versionsnummer ist im julianischen Datumsformat und wird jeden Tag erhöht, wenn die Versionsnummer mit jedem Build innerhalb eines Tages erhöht wird. Zum Beispiel im Mai 12 => 133,1, 133,2 und etc in 13. Mai => 134,1, 134,2 und etc.Wie zwei verschiedene Build-Nummern in TeamCity zu erhöhen

ich zwei Build-Konfigurationen erstellen können, die jeweils erhöht, aber ich bin nicht sicher, wie die anderen Build-Konfigurationen zugreifen Parameter.

Meine aktuelle Version Format% VersionJulDateBuildNum%%% build.counter

Antwort

0

Wenn eine Build-Konfiguration eine Snapshot-Abhängigkeit von der anderen hat, können Sie ihre Parameter mit % dep.

enter image description here enter image description here

hoffte, das hilft

+0

Das ist, was ich gesucht habe, Danke! .Ich brauche auch eine Möglichkeit, die Revisionsnummer für den nächsten Build nach dem nächtlichen Build zurückzusetzen. Gibt es eine Möglichkeit, dies ohne Powershell zu tun? –

+0

Alles, was Sie tun müssen, ist "next.build = 1" in der Datei .properties des Projekts in \ config \ projects \ ProjectName \ BuildNumbers \ something.buildNumbers.properties zu speichern. TBH, wenn Sie eine Build-Konfiguration hatten, die jede Nacht ausgelöst wurde, die von der tatsächlichen Ausführung des Builds abhängig war, könnten Sie anschließend einen Schritt ausführen, um den Inhalt der Eigenschaftendatei neu zu schreiben. –

+0

Ich habe die Eigenschaftendatei gefunden, Danke. Was ist der beste Weg, um diese Datei zu ändern und next.build = 1 zu setzen? Gibt es dazu neben dem Erstellen eines Build-Schritts, der ein Powershell-Skript ausführt, das die Datei überprüft und eine Suche durchführt und ersetzt? Weil mir das einfällt. –

0

Teamcity wird die Assemblyattribute automatisch für Sie verwalten, aber es gibt ein paar Einschränkungen.

Es wird völlig überschreiben Sie den vorhandenen Wert . Es aktualisiert alle AssemblyVersions in der Lösung. Wenn Sie also daran gebunden sind, verschiedene Projektversionen in derselben Lösung zu speichern, funktioniert dies möglicherweise nicht für Sie. Mit diesen Einschränkungen sind hier, wie wir es eingerichtet haben:

in den allgemeinen Einstellungen Ihrer Build-Konfiguration, um das Format zu% Version% Build-Nummer ändern {0} in Ihren Build-Parametern% Version% definieren. Ihr Major.Minor.Patch. Scrollen Sie in Ihren Build Steps zum unteren Bildschirmrand und klicken Sie auf Add Build Feature. Wählen Sie AssemblyInfo-Patcher aus. Stellen Sie sicher, dass das Assembly-Versionsformat als% build.number% ausgefüllt ist. Und das ist es. TeamCity aktualisiert alle Ihre Assembly-Informationen auf "major.minor.patch.build", wie in der "% version%" - und "build" -Zählung definiert. Diese Änderungen werden dann automatisch als allerletzter Schritt des Builds zurückgesetzt.

+0

ich diese Antwort schon in anderer Post gesehen habe. Dies entspricht nicht dem, wonach ich frage. –

0

Es gibt keine "einfache" (oder eingebaute) Möglichkeit, dies mit TeamCity zu tun.

Ein üblicher Ansatz, den ich schon gesehen habe, ist ein Powershell (oder Bash) Scriptschritt am Anfang des Builds (den Sie auf eine Vorlage setzen können, von der alle Builds erben können), die die Versionsnummer lesen wird aus einer Textdatei (z. B. Netzwerkfreigabe, die alle Buildagenten sehen können), erhöhen Sie sie und aktualisieren Sie die Datei. Sie können die Buildkonfigurations-ID verwenden, die eindeutig ist, um die Datei zu benennen. Ein anderer Ansatz, komplexer, aber eleganter (IMO), besteht darin, die Versionsnummer als einen Parameter der Build-Konfiguration selbst zu speichern und dann über Schritte im Build die TeamCity-REST-API zu verwenden, um den Parameter mit dem zu aktualisieren inkrementierter Wert Auf diese Weise können Teamcity verwenden Sie den Wert zu speichern und müssen nicht über Netzwerkfreigaben, Textdateien, Dateisperren sorgen usw.


Nicht wirklich zu Ihrer Frage, aber ich würde empfehlen, Sie sehen sich SemVer an, wenn Sie nicht bereits als Alternative für das Versionierungsschema Ihre Verwendung haben, die Ihnen (IMO) mehr wertvolle Informationen gibt.

Verwandte Themen