znalazłem kilka problemów, kiedy wdrożyła powyższą odpowiedź, które są tutaj aktualizacja:
#!/bin/bash
curl -o lastBuild.tmp "http://localhost:8111/app/rest/buildTypes/id:%system.teamcity.buildType.id%/builds/status:SUCCESS" --user rest:rest
last_commit=`xpath lastBuild.tmp '/build/revisions/revision/@version'| awk -F"\"" '{print $2}'`
git log --pretty=format:"- %%s" $last_commit..origin/master > changes.txt
Niektóre bardziej szczegółowe rzeczy:
- użytku
curl
aby pobrać ostatnią udaną kompilację z konfiguracji kompilacji. Możesz użyć substytucji teamcity, aby wstawić identyfikator kompilacji.
Należy zauważyć, że polecenie curl polega na tym, że użytkownik TeamCity został nazwany "reszta" z hasłem "reszta". Zaproponuj zmianę hasła.
Użycie XPath/AWK do analizowania odpowiedzi XML, ostatni git wersji
Korzystając git log
dostać wszystkie zmiany tworzą ostatni build i formatować je tak chcesz. Chciałem po prostu pobrać opisy commitów i zapisać je w pliku. Musisz upewnić się, że plik zniknie między wersjami, ustawiając git w celu wyczyszczenia. NB: Jeśli budujesz coś innego niż mistrz, będziesz potrzebował właściwej specyfikacji gałęzi tutaj.
Należy pamiętać, że opcja formatu git log
używa%, który jest znacznikiem zastąpienia teamcity, a zatem musi zostać zmieniony jako %%.
Należy skonfigurować program TeamCity, aby udostępnić katalog .git. Zobacz Using git commands in a TeamCity Build Step
Zmiany znajdują się teraz w pliku changes.txt.W mojej aplikacji (pytanie do edytora) użyłem tego pliku, aby przesłać do crashlytics dla dystrybucji beta iOS.
Dzięki, wszystkie moje zmiany są wypychane do github już, więc git dziennika pochodzenia/master..master nie będzie działać, ale wciąż widzę te zmiany i TeamCity musi śledzić je jakoś, po prostu nie wiem, jak to zrobić. – mishod