Jenkins-SCM의 변경 사항을 폴링하도록 Jenkins 구성
나는 jenkins와 함께 일하고 있으며 svn 저장소에 변경 사항이있을 때 maven 목표를 실행하고 싶습니다. 현재 구성으로 사진을 첨부했습니다.
5 분마다 저장소를 확인하는 것이 미친 짓이라는 것을 알고 있습니다. 새로운 변화가있을 때만 실행하고 싶지만 방법을 찾을 수 없습니다. 어쨌든 저장소를 확인하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까??
미리 감사드립니다
귀하의 크론이 올바르지 않은 것 같습니다. 설명한 내용에 따라 cron 일정을 다음과 같이 변경해야 할 수 있습니다.
*/5 * * * *
이제 일정에 입력 한 내용은 매시간 5시에 SCM을 폴링한다는 것을 의미합니다.
요즘 가장 좋은 방법은 H/5 * * * *
5 분마다 해싱 팩터를 사용하여 모든 작업이 정확히 같은 시간에 시작되는 것을 방지하는 것입니다.
그것은 오래된 질문입니다. 그러나 나에 따르면 정답이 없다.
여기서 실제 / 최적의 워크 플로는 SVN의 커밋 후 후크를 통합하여 다른 경우가 아닌 실제 커밋이 실행 된 후에 만 Jenkins 작업을 트리거하는 것입니다. 이렇게하면 SCM 시스템에서 불필요한 폴링을 피할 수 있습니다.
흥미로운 다음 링크를 찾을 수 있습니다.
- Subversion Plugin의 문서 사이트에있는 Jenkins Wiki의 커밋 후 후크 설명 입니다. 여기에서 관심있는 스크립트의 문서화 된 예를 찾을 수 있습니다.
- 공식 Apache Foundation의 Subversion 소스 제어 저장소 소스의 후크 스크립트 contrib 디렉토리 .
- StackOverflow에 대한 비슷한 질문 입니다.
회사의 SVN 서버에서 설정 한 경우 다음 (검열 된) 스크립트를 Subversion 서버 측의 커밋 후 후크로 사용합니다.
#!/bin/sh
# POST-COMMIT HOOK
REPOS="$1"
REV="$2"
#TXN_NAME="$3"
LOGFILE=/var/log/xxx/svn/xxx.post-commit.log
MSG=$(svnlook pg --revprop $REPOS svn:log -r$REV)
JENK="http://jenkins.xxx.com:8080/job/xxx/job/xxx/buildWithParameters?token=xxx&username=xxx&cause=xxx+r$REV"
JENKtest="http://jenkins.xxx.com:8080/view/all/job/xxx/job/xxxx/buildWithParameters?token=xxx&username=xxx&cause=xxx+r$REV"
echo post-commit $* >> $LOGFILE 2>&1
# trigger Jenkins job - xxx
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -qP "branches/xxx/xxx/Source"
if test 0 -eq $? ; then
echo $(date) - $REPOS - $REV: >> $LOGFILE
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -P "branches/xxx/xxx/Source" >> $LOGFILE 2>&1
echo logmsg: $MSG >> $LOGFILE 2>&1
echo curl -qs $JENK >> $LOGFILE 2>&1
curl -qs $JENK >> $LOGFILE 2>&1
echo -------- >> $LOGFILE
fi
# trigger Jenkins job - xxxx
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -qP "branches/xxx_TEST"
if test 0 -eq $? ; then
echo $(date) - $REPOS - $REV: >> $LOGFILE
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -P "branches/xxx_TEST" >> $LOGFILE 2>&1
echo logmsg: $MSG >> $LOGFILE 2>&1
echo curl -qs $JENKtest >> $LOGFILE 2>&1
curl -qs $JENKtest >> $LOGFILE 2>&1
echo -------- >> $LOGFILE
fi
exit 0
참고 URL : https://stackoverflow.com/questions/10121098/jenkins-configure-jenkins-to-poll-changes-in-scm
'programing tip' 카테고리의 다른 글
Clojure의 디렉토리에 파일 나열 (0) | 2020.12.14 |
---|---|
사용하지 않는 함수 인수를 어떻게 표시 할 수 있습니까? (0) | 2020.12.14 |
프록시 뒤의 npm이 상태 403으로 실패합니다. (0) | 2020.12.14 |
웹 API 호출시 C # 지원되지 않는 권한 부여 유형 (0) | 2020.12.14 |
Django runserver 영구 (0) | 2020.12.14 |