Jenkins 빌드 번호 변경


142

작업이 완료된 후 이메일을 통해 전송 된 빌드 번호를 변경하는 방법이 있습니까? 문제는 제품 빌드가 Jenkins에 의해 수행되지 않기 때문에 빌드 번호 (예 : 텍스트 파일)를 가져 와서 Jenkins에서 빌드 번호를 업데이트하여 일치시킬 수 있다는 것입니다. 빌드 번호를 설정하려고했습니다.

set BUILD_NUMBER=45

그러나 이메일에는 여전히 Jenkins가 처음 설정 한 빌드 번호가 표시됩니다.

답변:


259

스크립트 콘솔 (Jenkins 관리-> 스크립트 콘솔)에 액세스 할 수있는 경우 다음을 수행 할 수 있습니다.

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

7
이것이 문제를 해결하기 위해 완벽하게 작동하는지 확인할 수 있습니다. 두 jenkins 서버간에 수동으로 빌드 기록을 복사했으며 새 서버에서 nextBuildNumber가 잘못되었습니다. 이것을 실행하면 올바른 새 nextBuildNumber를 설정할 수 있었고 jenkins 구성을 다시로드 할 필요가 없습니다.
Phil Hollenback

5
GitHub 플러그인을 사용하는 경우 "YourJobName"입니다 "organization/repository/branchname".
Ruud

15
공장. 값은 다음을 사용하여 구축하지 않고도 확인할 수 있습니다.Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder

7
이것이 MultiBranch-Pipelines에서도 작동하는지 확인할 수 있습니다. "JobName"은 브랜치 페이지의 상단에 기재되어 있습니다 : 전체 프로젝트 명 : PipelineName/BranchName그래서Jenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus


37

플러그인으로 수행 할 수 있습니다 : https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

자세한 정보 : http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

플러그인이 마음에 들지 않는 경우 :

nextBuildNumber 파일을 통해 빌드 번호를 변경하려면 "Jenkins 관리"페이지에서 "디스크에서 구성 다시로드"를 수행해야합니다.


2
플러그인을 사용할 필요가 없습니다.
david.perez

1
고마워, 당신은 내 하루를 저장합니다.
후쿠자와 유키오

29

작업 작업 공간 폴더에서 다음과 같이 :

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

라는 파일이 nextBuildNumber있습니다.

파일에서 빌드 번호를 설정하고 디스크에서 구성을 다시로드하면 (Jenkins 관리 메뉴) 다음 빌드에서 파일의 값을 BUILD_NUMBER로 설정합니다.


9
nextBuildNumber 파일을 변경 한 후 디스크에서 구성을 다시로드 했습니까 (Jenkins 관리 메뉴)?
vezenkov

아니! 나는 그것이 자동으로 일어난다 고 생각했다.
hfossli

이것은 나를 위해 완벽하게 작동했습니다. 서버가 재부팅되기 전에 재부팅해야합니다.
Hawkeye64

파이프 라인을 실행하는 많은 사용자가있는 경우 서버를 재부팅해야하는 번거 로움이 있습니다. 이러한 종류의 솔루션을 피하는 것이
좋습니다

8

예를 들어 git flow 를 사용하여 슬래시를 포함 하는 분기 이름이있는 경우, 분기 이름 내에서 슬래시 를 유니 코드 문자 % 2F 로 바꿔야합니다 .

다음은 파이프 라인 My-Pipeline-Name 및 분기 릴리스 / my-release-branch-name의 예입니다.

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

파이프 라인에 대한 다른 작업 (분기)을 나열하는 다음 명령을 실행하여 이것에 대해 알 수있었습니다.

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

도움이 되길 바랍니다.



1

Jenkins 서버에서 $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber 파일을 업데이트하여 빌드 번호를 변경할 수 있습니다.

CLI 또는 UI를 사용하여 빌드 번호를 변경하기 위해 플러그인 Next Build Number 플러그인 을 설치할 수도 있습니다


nextBuildNumber 파일에서 빌드 번호를 변경하는 것만으로는 충분하지 않으므로 "Jenkins 관리"메뉴의 "디스크에서 구성 다시로드"도 실행해야합니다.
falstaff

-4

환경 변수를 사용하여 :

$BUILD_NUMBER =4

2
제발 소리 치지 마 감사합니다.
OliBlogger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.