[jenkins] 파이프 라인을 작성하여 이전 빌드를 삭제하는 방법은 무엇입니까?

groovy 구문 생성기가 샘플 단계에서 작동하지 않습니다 properties: Set Job Properties. 필드 Discard old builds를 선택 하고 입력 10했는데 아무것도 표시되지 않습니다.Max # of builds to keepGenerate 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']]]);

이 스 니펫은 스크립트 구문을위한 것입니다.


답변

Jenkins에는 내장 구문 생성기 페이지가 있습니다.

파이프 라인 구문 : 스 니펫 생성기
<your jenkins url > / pipeline-syntax /

파이프 라인 구문 : 지시어 생성기
<your jenkins url > / directive-generator /

Discard old builds Directive Generator의 예
오래된 빌드 예제 삭제


답변

스크립팅 된 파이프 라인의 경우 다음을 사용합니다.

properties([
    buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])


답변

  1. 특정 일수 이후 빌드를 취소하려면 :

     options {
         buildDiscarder(logRotator(daysToKeepStr: '7'))
     }
    
  2. 특정 수의 빌드 후 빌드를 취소하려면 다음을 수행하십시오.

     options {
         buildDiscarder(logRotator(numToKeepStr: '7'))
     }
    


답변

Vadim의 대답은 알 수없는 이유로 저에게 효과가 없었습니다. 다음과 같이 단순화했으며 이제 작동합니다.

options {
    buildDiscarder(logRotator(numToKeepStr: '3'))
}


답변

선언적 파이프 라인의 경우 다음을 추가 할 수 있습니다.

options {

    buildDiscarder(
        logRotator(
            // number of build logs to keep
            numToKeepStr:'5',
            // history to keep in days
            daysToKeepStr: '15',
            // artifacts are kept for days
            artifactDaysToKeepStr: '15',
            // number of builds have their artifacts kept
            artifactNumToKeepStr: '5'
        )
    )
}