Zmiana numeru kompilacji Jenkinsa

142

Czy istnieje sposób na zmianę numeru kompilacji wysyłanego pocztą e-mail po zakończeniu zadania? Problem polega na tym, że Jenkins NIE wykonuje kompilacji produktów, więc chcemy mieć możliwość uzyskania numeru kompilacji (tj. Z pliku tekstowego) i zaktualizowania numeru kompilacji w Jenkins, aby go dopasować. Próbowałem ustawić numer kompilacji:

set BUILD_NUMBER=45

Ale e-mail nadal zawiera numer kompilacji, który pierwotnie ustawił Jenkins.

erman8
źródło

Odpowiedzi:

259

Jeśli masz dostęp do konsoli skryptów (Manage Jenkins -> Script Console), możesz wykonać następujące czynności:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
l8nite
źródło
7
Mogę sprawdzić, czy to działa idealnie, aby rozwiązać problem. Ręcznie skopiowałem historię kompilacji między dwoma serwerami Jenkins, a na nowym serwerze nextBuildNumber był zły. Uruchomienie tego pozwoliło mi ustawić poprawny nowy numer nextBuildNumber, bez konieczności przeładowywania konfiguracji jenkinsa.
Phil Hollenback
5
Jeśli używasz wtyczki GitHub, "YourJobName"to "organization/repository/branchname".
Ruud
15
Pracuje. Wartość można zweryfikować bez budowania za pomocą:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder
7
Mogę potwierdzić, że to działa również dla MultiBranch-Pipelines. „JobName” znajduje się na górze strony oddziału: Pełna nazwa projektu: PipelineName/BranchNametak będzieJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus
37

można zrobić za pomocą wtyczki: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

więcej informacji: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

jeśli nie lubisz wtyczki:

Jeśli chcesz zmienić numer kompilacji za pomocą pliku nextBuildNumber, powinieneś "Przeładować konfigurację z dysku" ze strony "Zarządzaj Jenkins".

mighq
źródło
2
Nie ma potrzeby używania wtyczki.
david.perez
1
Dzięki, oszczędzasz mi dzień.
Yukio Fukuzawa
29

W folderze obszaru roboczego zadania, na przykład:

C:\Program Files (x86)\Jenkins\jobs\job_name

jest plik o nazwie nextBuildNumber.

Ustawienie numeru kompilacji w pliku i ponowne załadowanie konfiguracji z dysku (menu Manage Jenkins) wymusi, że następna kompilacja, od której zaczniesz, będzie miała wartość z pliku BUILD_NUMBER.

vezenkov
źródło
9
Czy ponownie załadowałeś konfigurację z dysku (menu Manage Jenkins) po zmianie pliku nextBuildNumber?
vezenkov
Nie! Myślałem, że stało się to automatycznie.
hfossli
To zadziałało idealnie dla mnie. Musisz ponownie uruchomić serwer, zanim zacznie działać.
Hawkeye64
Konieczność ponownego uruchomienia serwera jest uciążliwa, jeśli masz wielu użytkowników korzystających z potoku. Lepiej unikaj tego rodzaju rozwiązań
MorganGeek
8

Jeśli masz nazwę gałęzi zawierającą ukośnik Forward ( na przykład używając git flow ), będziesz musiał zamienić ukośnik Forward na znak Unicode % 2F w nazwie gałęzi.

Oto przykład dla potoku My-Pipeline-Name i wersji branch / my-release-branch-name

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

Mogłem się o tym dowiedzieć, uruchamiając następujące polecenie, które wyświetli listę różnych zadań (gałęzi) dla twojego potoku

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

Mam nadzieję, że to pomoże.

DaWyz
źródło
1

Możesz zmienić numer kompilacji, aktualizując plik $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber na serwerze Jenkins.

Możesz także zainstalować wtyczkę Wtyczka Next Build Number, aby zmienić numer kompilacji za pomocą CLI lub UI

Pradip sakhavala
źródło
Zwróć uwagę, że sama zmiana numeru kompilacji w pliku nextBuildNumber nie wystarczy, konieczne jest również wykonanie polecenia „Przeładuj konfigurację z dysku” w menu „Zarządzaj Jenkins”.
falstaff
-4

Używając zmiennych środowiskowych:

$BUILD_NUMBER =4
ksr
źródło
2
Proszę, nie krzycz. Dziękuję Ci.
OliBlogger