Jenkins / Hudson 빌드 기록을 지우려면 어떻게하나요?
최근에 허드슨 빌드 중 하나의 구성을 업데이트했습니다. 빌드 기록이 동기화되지 않았습니다. 내 빌드 기록을 지우는 방법이 있습니까?
제발 감사합니다
Manage Hudson / Reload Configuration From Disk를 클릭하면 Hudson이 모든 빌드 이력 데이터를 다시로드합니다.
디스크의 데이터가 엉망인 경우 % HUDSON_HOME % \ jobs \ < projectname > 디렉토리 로 이동하여 예상대로 빌드 디렉토리를 복원해야합니다. 그런 다음 구성 데이터를 다시로드하십시오.
단순히 모든 빌드 기록을 제거하는 방법을 묻는 경우, 빌드가 몇 개만있는 경우 UI를 통해 하나씩 삭제하거나 % HUDSON_HOME % \ jobs \ < projectname > 디렉토리 로 이동하여 모든 빌드를 삭제할 수 있습니다 . 거기에있는 하위 디렉터리-빌드에 해당합니다. 그런 다음 변경 사항을 적용하려면 서비스를 다시 시작하십시오.
스크립트 콘솔 (Jenkins 관리> 스크립트 콘솔) 및이 스크립트와 유사한 것을 사용하여 작업의 빌드 기록을 대량 삭제합니다. https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy
이 스크립트는 빌드 범위 만 삭제한다고 가정합니다. 주어진 작업에 대한 모든 빌드를 삭제하려면 다음을 사용하십시오 (테스트 됨).
// 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() }
// uncomment these lines to reset the build number to 1:
//job.nextBuildNumber = 1
//job.save()
이 대답은 Jenkins입니다.
암호:
def jobName = "copy_folder"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
또 다른 옵션은 cURL로 빌드를 삭제하는 것입니다.
$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
위는 myJob 작업에 대한 빌드 # 1에서 # 56을 삭제합니다.
Jenkins 인스턴스에서 인증이 활성화 된 경우 사용자 이름과 API 토큰을 다음과 같이 제공해야합니다.
$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
API 토큰은 /me/configure
Jenkins 의 페이지에서 가져와야합니다 . "Show API Token ..."버튼을 클릭하면 사용자 이름과 API 토큰이 모두 표시됩니다.
편집 : 하나를 교체해야 할 수도 있습니다 doDeleteAll
에 의해 doDelete
구성이나 사용 젠킨스의 버전에 따라이 작업을하기 위해 위의 URL에서.
프로젝트 구성을 임시로 수정하여 마지막 1 개의 빌드 만 저장하고 구성을 다시로드 한 다음 (이전 빌드를 폐기해야 함) 구성 설정을 원하는 값으로 다시 변경할 수 있습니다.
Jenkins 스크립팅을 사용하여 모든 작업에 대한 모든 빌드를 삭제하는 방법은 다음과 같습니다.
def jobs = Jenkins.instance.projects.collect { it }
jobs.each { job -> job.getBuilds().each { it.delete() }}
이것은 사용 가능한 최상의 옵션입니다.
Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }
이 코드는 모든 Jenkins 작업 빌드 기록을 삭제합니다.
MultiBranchProject (예 : 파이프 라인)의 빌드 기록을 지우려면 Jenkins 홈페이지 → Manage Jenkins → Script Console로 이동하여 다음 스크립트를 실행합니다.
def projectName = "ProjectName"
def project = Jenkins.instance.getItem(projectName)
def jobs = project.getItems().each {
def job = it
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
}
빌드를 정리하는 또 다른 쉬운 방법은 작업 끝에 Discard Old Plugin을 추가하는 것입니다. 저장할 최대 빌드 수를 설정 한 후 작업을 다시 실행하십시오.
https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin
Go to the %HUDSON_HOME%\jobs\<projectname>
remove builds
dir and remove lastStable, lastSuccessful
links, and remove nextBuildNumber
file.
After doing above steps go to below link from UI
Jenkins-> Manage Jenkins -> Reload Configuration from Disk
It will do as you need
If using the Script Console method then try using the following instead to take into account if jobs are being grouped into folder containers.
def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)
or
def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)
Using Script Console.
In case the jobs are grouped it's possible to either give it a full name with forward slashes:
getItemByFullName("folder_name/job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
or traverse the hierarchy like this:
def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
Deleting directly from file system is not safe. You can run the below script to delete all builds from all jobs ( recursively ).
def numberOfBuildsToKeep = 10
Jenkins.instance.getAllItems(AbstractItem.class).each {
if( it.class.toString() != "class com.cloudbees.hudson.plugins.folder.Folder" && it.class.toString() != "class org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject") {
println it.name
builds = it.getBuilds()
for(int i = numberOfBuildsToKeep; i < builds.size(); i++) {
builds.get(i).delete()
println "Deleted" + builds.get(i)
}
}
}```
Navigate to: %JENKINS_HOME%\jobs\jobName
"nextBuildNumber"파일을 열고 번호를 변경하십시오. 그 후 Jenkins 구성을 다시로드하십시오. 참고 : "nextBuildNumber"파일에는 Jenkins에서 사용할 다음 빌드 번호가 포함되어 있습니다.
참고 URL : https://stackoverflow.com/questions/3410141/how-do-i-clear-my-jenkins-hudson-build-history
'Program Tip' 카테고리의 다른 글
자바 스크립트를 사용하여 텍스트를 강조 표시하는 방법 (0) | 2020.10.09 |
---|---|
Python : 간단한 설정 / 구성 파일을 어떻게 저장 하시겠습니까? (0) | 2020.10.09 |
파이썬에서 프로그램 실행 시간을 어떻게 계산합니까? (0) | 2020.10.08 |
PhpStorm은 넷북에서 매우 느리고 느리며 응답 성을 위해 IDE를 최적화합니까? (0) | 2020.10.08 |
SQlite : 선택 하시겠습니까? (0) | 2020.10.08 |