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.

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)

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".


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.


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.



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


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

2
Proszę, nie krzycz. Dziękuję Ci.
OliBlogger
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.