반응형
Jenkins의 다중 분기 파이프 라인으로 "주기적으로 구축"
Pipeline 플러그인으로 Jenkins 2를 실행하고 있습니다. 각 분기 (마스터, 개발 등)에 Jenkinsfile이 루트에있는 다중 분기 파이프 라인 프로젝트를 설정했습니다. 설정은 간단했습니다. 그러나 코드가 변경되지 않더라도 각 분기를 주기적으로 (분기 인덱싱이 아님) 실행하는 방법을 잃어 버렸습니다. 주기적 빌드를 활성화하려면 Jenkinsfile에 무엇을 넣어야합니까?
선언적 스타일 Jenkinsfile을 사용하는 경우 triggers 지시문 을 사용합니다 .
pipeline {
agent any
triggers {
cron('H 4/* 0 0 1-5')
}
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
}
선언적 스타일 파이프 라인을 사용하고 특정 분기에서만 빌드를 트리거하려는 경우 다음과 같이 할 수 있습니다.
String cron_string = BRANCH_NAME == "master" ? "@hourly" : ""
pipeline {
agent none
triggers { cron(cron_string) }
stages {
// do something
}
}
Jenkins Jira 에서 발견
나는 이것을 폐기하는 오래된 빌드를 보여주는 예를 찾을 수 있었는데, 이것은 또한 내가 원했던 것입니다.
Jenkinsfile
jenkins-infra / jenkins.io에서 :
properties(
[
[
$class: 'BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '10']
],
pipelineTriggers([cron('H/30 * * * *')]),
]
)
이것은 나를 위해 일하고 있습니다.
triggers {
cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '')
}
이 기사 에서 더보기
Paramertized 주기적 실행 또는 예약 된 트리거의 경우 다음과 같이 사용할 수 있습니다.
triggers{
parameterizedCron env.BRANCH_NAME == "develop" ? '''H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=vbox;VERSION=10.5.0.0
H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=workstation;VERSION=10.5.0.0''' : ""
}
반응형
'Program Tip' 카테고리의 다른 글
특정 브랜치에서 저장소를 얕게 복제하려면 어떻게해야합니까? (0) | 2020.12.04 |
---|---|
MySQL 오류 # 1064를 어떻게 수정할 수 있습니까? (0) | 2020.12.04 |
TcpListener를 중지하는 올바른 방법 (0) | 2020.12.04 |
jquery로 html 문자열 구문 분석 (0) | 2020.12.04 |
ADO.NET | DataDirectory | (0) | 2020.12.04 |