파이프 라인을 작성하여 이전 빌드를 삭제하는 방법은 무엇입니까?
groovy 구문 생성기가 샘플 단계에서 작동하지 않습니다 properties: Set Job Properties
. 필드 Discard old builds
를 선택 하고 입력 10
했는데 아무것도 표시되지 않습니다.Max # of builds to keep
Generate Groovy
Jenkins 버전 : 2.7
선언적 구문의 경우 options
블록을 사용할 수 있습니다 .
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
logRotator
( 소스 코드에서 )에 대한 매개 변수 :
daysToKeepStr
: 역사는 오늘날까지만 유지됩니다.numToKeepStr
:이 수의 빌드 로그 만 유지됩니다.artifactDaysToKeepStr
: 유물은 현재까지만 보관됩니다.artifactNumToKeepStr
:이 빌드 수에만 아티팩트가 유지됩니다.
자세한 내용은 Cloudbees 지식 기반 과 block 문서options
에서 찾을 수 있습니다 .
결국에는 설정하려는 키가 properties
있는에 중첩 된 메서드를 사용할 수 있습니다 BuildDiscarderProperty
. 여전히 각 키의 올바른 구문을 찾을 수있는 확실한 방법이 없습니다. 많은 추측과 확인 후 :
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
이 스 니펫은 스크립트 구문을위한 것입니다.
스크립팅 된 파이프 라인의 경우 :
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
Jenkins에는 내장 구문 생성기 페이지가 있습니다.
파이프 라인 구문 : 스 니펫 생성기
<your jenkins url
> / pipeline-syntax /
Pipeline-Syntax : 지시어 생성기
<your jenkins url
> / directive-generator /
Discard old builds
Directive Generator의 예
Vadim의 대답은 알려지지 않은 이유로 저에게 효과가 없었습니다. 다음과 같이 단순화했으며 이제 작동합니다.
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
특정 일수 이후 빌드를 취소하려면 :
options { buildDiscarder(logRotator(daysToKeepStr: '7')) }
특정 수의 빌드 후 빌드를 취소하려면 다음을 수행하십시오.
options { buildDiscarder(logRotator(numToKeepStr: '7')) }
다중 브랜치 파이프 라인 작업 수준 (모든 개별 작업 수준과 비교)에서 빌드 보존을 구성하려는 경우 Jenkinsfile
에도 가능합니다 : https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com .atlassian.jira.plugin.system.issuetabpanels : comment-tabpanel # comment-325601
이외에도 https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch 에서 BuildRetentionBranchProperty
다른 *BranchProperty
s를 구성 할 수 있습니다.
적어도 Jenkins 2.73.2를 사용하는 경우 GUI에 표시되지 않을 수 있습니다. 그러나 여전히 JobDSL을 사용하거나 config.xml
직접 수정할 수 있습니다 (나는 ;-))
프로그래밍 방식이 필요한 경우 (예 options{}
: 파이프 라인 구문을 사용하는 대신 함수에서 수행 ) :
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}
참고 URL : https://stackoverflow.com/questions/39542485/how-to-write-pipeline-to-discard-old-builds
'development' 카테고리의 다른 글
열 값으로 2 차원 배열을 정렬하는 방법은 무엇입니까? (0) | 2020.11.19 |
---|---|
Bash를 사용하여 각 줄의 마지막 단어를 얻는 방법 (0) | 2020.11.19 |
지도를 URL 쿼리 문자열로 변환하는 방법은 무엇입니까? (0) | 2020.11.19 |
Visual Studio-프로세스 바로 가기에 연결 (0) | 2020.11.19 |
Android-DataBinding-Binding 클래스는 언제 어떻게 생성됩니까? (0) | 2020.11.19 |