2012-08-07 17 views
6

Używamy TeamCity jako serwera CI i zastanawialiśmy się, jak zaimplementować metodę wersjonowania naszych wydań, która jest bezpieczna (tj. Minimalna szansa na błąd człowieka), ale także wymaga możliwie najmniejszego wysiłku. Do tej pory wydaje się najbardziej logiczne:TeamCity do odczytu i aktualizacji numeru wersji z pliku wersji

  1. Utwórz plik wersji (lub użyj assemblyinfo.cs). Informacja o wersji będzie miała format .... Ten plik zostanie sprawdzony w moim VCS.
  2. Run kompilacji TeamCity
  3. TeamCity odczytuje plik wersji z etapu 1, wybiera każde indywidualne numery i zestawy odpowiednie parametry TeamCity budowlanej (więc mogę wykorzystać je później do rzeczy, takich jak tworzenie pakietów Nuget i etykietowaniem)
  4. TeamCity auto zwiększa wartość końcową "liczby produkcji".
  5. TeamCity zapisuje nowe informacje o wersji z powrotem do pliku wersja (z zaktualizowana „budować count”)
  6. TeamCity następnie biegnie przez resztę moich kroków tworzenia, budowania plików, uruchamianie testów jednostkowych, ustawiając odpowiednie wersje montażowe itp .
  7. TeamCity wreszcie sprawdza plik z powrotem do VCS

Wierzymy korzyści z robienia rzeczy w ten sposób jest powinno musimy zrobić poprawkę starego wydania następnie numer wersji będą poprawne i TeamCity może po prostu pracować ze starym plikiem wersji i jak zwykle zwiększać licznik wersji. To sprawia, że ​​założenie, że poprawnie aktualizujemy nasze wersje major/minor/patch. Miejmy nadzieję, że będzie to dobrze działać z wkrótce dostępną funkcją TeamCity 7.1, która pozwala wybrać gałąź do zbudowania za pomocą niestandardowego okna dialogowego kompilacji.

Z tego, co do tej pory przeczytałem, tego rodzaju operacje powinny być możliwe w TeamCity, ale szukamy najłatwiejszego root'a, aby to naprawić, ponieważ jesteśmy tylko strojem dwuosobowym i nie możemy stać na poświęcenie dużej ilości czasu na stanie się ekspertami w firmie Nant lub powershell, aby przekonać się, że może nie robić tego, co chcemy.

Więc myślę podsumować moje pytania są następujące:

  1. Czy to, co proponuję to możliwe?
  2. Jeśli tak, to jakie jest najlepsze narzędzie do użycia, biorąc pod uwagę moje ograniczone doświadczenie z Nant, powershell itp. (Tj. Który jest najszybszy do nauczenia się dla kogoś, którego doświadczenie w zakresie wiersza poleceń i skryptu rozciąga się tak daleko, jak proste operacje DOS i trochę VBScript)

Każda pomoc jest bardzo doceniana.

Odpowiedz

9

Na pierwsze pytanie: tak, to jest możliwe:

  1. Dodaj .git (.svn, .hg etc) do katalogu VCS rządzi
  2. odczytać numer wersji w skrypcie kompilacji w TeamCity (wiersz poleceń runner) w twoim ulubionym języku skryptowym i zainspiruj go.
  3. Set numer kompilacji poprzez interaction protocol
  4. Aktualizacja numer kompilacji w pliku wersji w swoim ulubionym języku skryptowym
  5. wykonać swój build kroki
  6. Wykonaj popełnić i pchania, bo można już masz .git (.svn,.hg itp.) katalog w katalogu kompilacji w ostatnim kroku

Przepraszamy, ale nie mogę odpowiedzieć na twoje drugie pytanie, ponieważ nie znam żadnych odpowiednich narzędzi dla systemu Windows. Na Linuksie używałbym basha.

+0

Dzięki za wiadomość, czekam tylko na kogoś, kto pomógłby w odpowiednim narzędziu. –

+1

Narzędzie do wykonywania skryptów polecam powershell. TeamCity ma dla niego niezłą biegaczkę, więc możesz zdefiniować skrypt, który pobiera parametry, a następnie użyć zmiennych TeamCity, aby przekazać te parametry: np. skrypt rozpoczynający "param ($ defaultBranchVersion)" i ustaw "Argumenty skryptu" na% system.BranchVersion% W przeszłości dobrze mi się to udało. – Graham

Powiązane problemy