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
- Utwórz plik wersji (lub użyj assemblyinfo.cs). Informacja o wersji będzie miała format .... Ten plik zostanie sprawdzony w moim VCS.
- Run kompilacji TeamCity
- 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)
- TeamCity auto zwiększa wartość końcową "liczby produkcji".
- TeamCity zapisuje nowe informacje o wersji z powrotem do pliku wersja (z zaktualizowana „budować count”)
- TeamCity następnie biegnie przez resztę moich kroków tworzenia, budowania plików, uruchamianie testów jednostkowych, ustawiając odpowiednie wersje montażowe itp .
- 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:
- Czy to, co proponuję to możliwe?
- 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.
Dzięki za wiadomość, czekam tylko na kogoś, kto pomógłby w odpowiednim narzędziu. –
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