최근에 허드슨 빌드 중 하나의 구성을 업데이트했습니다. 빌드 기록이 동기화되지 않았습니다. 내 빌드 기록을 지우는 방법이 있습니까?
제발 감사합니다
답변
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에서.
답변
Jenkins 스크립팅을 사용하여 모든 작업에 대한 모든 빌드를 삭제하는 방법은 다음과 같습니다.
def jobs = Jenkins.instance.projects.collect { it }
jobs.each { job -> job.getBuilds().each { it.delete() }}
답변
프로젝트 구성을 임시로 수정하여 마지막 1 개의 빌드 만 저장하고 구성을 다시로드 한 다음 (이전 빌드를 폐기해야 함) 구성 설정을 원하는 값으로 다시 변경할 수 있습니다.
답변
MultiBranchProject (예 : 파이프 라인)의 빌드 기록을 지우려면 Jenkins 홈 페이지 → Jenkins 관리 → 스크립트 콘솔로 이동하여 다음 스크립트를 실행합니다.
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()
}