Wygląda na to, że wtyczka TestFlight rozszerza zmienne umieszczone w polu "Tworzenie uwag", więc pytanie brzmi: jak możemy uzyskać zmiany dla bieżącej kompilacji w zmiennej środowiskowej?
O ile mi wiadomo, wtyczka Subversion nie udostępnia tych informacji za pośrednictwem zmiennej środowiskowej. Jednak wszystkie wtyczki Jenkins SCM integrują informacje z dziennika zmian, jak widać za pomocą linku "Zmiany" w interfejsie internetowym dla każdej kompilacji.
Informacje te są również dostępne za pośrednictwem interfejsu API Jenkinsa, nawet podczas kompilacji.
Na przykład, jeśli dodasz "Execute skorupę" budować krok gdzie uruchomieniu tego polecenia:
curl -s "http://jenkins/job/my-job/$BUILD_NUMBER/api/xml?wrapper=changes&xpath=//changeSet//comment"
dostaniesz dokument XML podobny do tego:
<changes>
<comment>First commit.</comment>
<comment>Second commit.</comment>
</changes>
Następnie możesz sformatować te informacje w dowolny sposób i umieścić je w zmiennej środowiskowej, do której można się odwołać w sekcji "Uwagi do budowy" TestFlight.
Jednak ustawienie zmiennej środowiskowej w kroku kompilacji nie jest domyślnie trwałe. — w tym celu wymaga użycia EnvInject Plugin.
W tym przypadku, można napisać tekst changelog do tymczasowego pliku z zawartością, takich jak:
CHANGELOG="New in this build:\n- First commit.\n- Second commit."
Następnie za pomocą etapu budowy z opcją Environment Properties File Path załadować ten plik, zmienna $CHANGELOG
istniałby w twoim środowisku i trwają do końca kompilacji, pozwalając ci na użycie go w polu "Build Notes".
Uwaga: I nie był używany TestFlight wtyczki siebie (choć Wziąłem szybki rzut oka na kod), a ja tylko przetestowane API zmiany z repozytorium Git. Podobnie, nie testowałem, w jaki sposób znaki nowej linii powinny być kodowane za pomocą wtyczki EnvInject, co może powodować problemy.
Potrzebowałem dokładnie tego samego. Dziękuję za zadanie tego pytania i jestem jeszcze bardziej wdzięczny za odpowiedź. – makdad