[jenkins] 젠킨스에서 빌드 번호를 재설정하는 방법은 무엇입니까?

Jenkins와 Gradle을 사용하여 Java 프로젝트를 빌드하고 있습니다.

프로젝트를 빌드 할 때마다 Jenkins 화면에 새 빌드 번호가 표시됩니다.

다음은 내 Jenkins 빌드 정보입니다.

Success > Console Output  #96   03-Jan-2014 15:35:08
Success > Console Output  #95   03-Jan-2014 15:27:29
Failed > Console Output  #94    03-Jan-2014 15:26:16
Failed > Console Output  #93    03-Jan-2014 15:25:01
Failed > Console Output  #92    03-Jan-2014 15:23:50
Success > Console Output  #91   03-Jan-2014 12:42:32
Success > Console Output  #90   03-Jan-2014 12:02:45

Jenkins 빌드 번호를 다음과 같이 재설정하고 싶습니다.

Success > Console Output  #1    03-Jan-2014 12:02:45

Jenkins에서 빌드 번호를 어떻게 재설정 할 수 있습니까?



답변

그루비 스크립트 콘솔에서 더 쉽게 할 수 있습니다. 로 이동하여 HTTP : 당신의-젠킨스 서버 / 스크립트 //
스크립트 창에서 입력 :

item = Jenkins.instance.getItemByFullName("your-job-name-here")
//THIS WILL REMOVE ALL BUILD HISTORY
item.builds.each() { build ->
  build.delete()
}
item.updateNextBuildNumber(1)


답변

에서 여기

Hudson 작업의 이름이 FooBar 인 경우

  • FooBar를 FooBar-Copy로 이름 변경
  • FooBar-Copy에서 ‘기존 작업 복사’옵션을 사용하여 FooBar라는 새 작업을 만듭니다.
  • FooBar-Copy 삭제


답변

  • 먼저 작업 공간을 정리하고 이전 빌드를 제거합니다.
    • 서버에서 작업 디렉토리로 이동하십시오. ‘var / lib / jenkins / jobs / myJob’작업 공간 및 빌드 디렉토리와 폴링 파일, lastSuccessful, lastStable 파일 등을 삭제합니다. config.xml 및 lastBuildNumber 만 있어야합니다.
    • 서비스 젠킨스 중지 와 같은 것을 사용하여 젠킨스 종료
    • nextBuildNumber 라는 파일을 편집하고 현재 빌드 번호 대신 1을 삽입합니다.
    • Jenkins를 다시 시작하고 Jenkins 서비스를 시작합니다.
    • 젠킨스에 로그인하고 작업으로 이동하여 빌드를 누르십시오. 작업 # 1 구축을 시작해야합니다.


답변

다음 빌드 번호를 설정하려면 “NextBuildNumber”플러그인이 있습니다. 그러나 필요한 빌드 번호 인 1이 현재 빌드 번호보다 적기 때문에 귀하의 경우에는 작동하지 않습니다.

먼저 이전 빌드를 모두 삭제해야합니다. 이 간단한 스크립트를 실행하여 수행 할 수 있습니다
.-> Jenkins 관리-> 스크립트 콘솔로 이동하십시오.

// change this variable to match the name of the job whose builds you want to delete
def jobName = "Your Job Name"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }

이제 다음 빌드 번호를 1로 설정하고 빌드를 실행할 수 있습니다. 1로 시작 합니다. 🙂 간단합니다.

업데이트-Jenkins에는 이제 작업 기록 제거 플러그인이있어이 작업을 가장 쉽게 수행 할 수 있습니다. 자세한 내용은 페이지를 확인하세요-https: //wiki.jenkins.io/display/JENKINS/Purge+Job+History+Plugin


답변

일반적으로 빌드 번호를 다음으로 재설정하려면 N( N반드시 1 일 필요는 없음) :

  • 기존의 위치를 기반으로 삭제합니다 buildNumber >= N.
  • 편집 Program Files (x86)/Jenkins/jobs/yourjob/nextBuildNumber. 포함 된 번호를로 설정합니다 N.
  • Jenkins에서 Manage Jenkins -> Reload Configuration from Disk.


답변

허용되는 답변을 확장하여 모든 프로젝트에 대해 한 번에 수행하는 방법은 다음과 같습니다.

Jenkins.instance.allItems.each() {
  item -> item.builds.each() {
    build -> build.delete()
  }
  item.updateNextBuildNumber(1)
}


답변

@antweiss의 탁월한 답변의 확장으로 실제로 더 나아갈 수 있습니다 …

전체 빌드 기록을 삭제할 필요가 없습니다. 원하지 않는 경우 이전 시점으로 시간을 간단히 롤백 할 수 있습니다.

resetNumberTarget = 14
item = Jenkins.instance.getItemByFullName("Project Name [from project Dashboard]")
//println(item)

item.builds.each() { build ->
  //println(build)
  //println(build.number)

  if(build.number >= resetNumberTarget)
  {
    //println("About to Delete '" + build + "'")
    build.delete()
  }
}

item.updateNextBuildNumber(resetNumberTarget)

더미 실행을 원하는 경우 실제로 수행하지 않고 수행 할 작업을 확인하려면 build.delete()item.updateNextBuildNumber(resetNumberTarget)줄을 주석 처리하고 다양한 인쇄 명령의 주석 처리를 제거하면됩니다.


문서 : 이러한 개체의 세부 정보를 찾기가 어려웠지만 다음을 확인했습니다.