programing tip

Jenkins-SCM의 변경 사항을 폴링하도록 Jenkins 구성

itbloger 2020. 12. 14. 07:56
반응형

Jenkins-SCM의 변경 사항을 폴링하도록 Jenkins 구성


나는 jenkins와 함께 일하고 있으며 svn 저장소에 변경 사항이있을 때 maven 목표를 실행하고 싶습니다. 현재 구성으로 사진을 첨부했습니다.

5 분마다 저장소를 확인하는 것이 미친 짓이라는 것을 알고 있습니다. 새로운 변화가있을 때만 실행하고 싶지만 방법을 찾을 수 없습니다. 어쨌든 저장소를 확인하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까??

미리 감사드립니다여기에 이미지 설명 입력


귀하의 크론이 올바르지 않은 것 같습니다. 설명한 내용에 따라 cron 일정을 다음과 같이 변경해야 할 수 있습니다.

*/5 * * * *

이제 일정에 입력 한 내용은 매시간 5시에 SCM을 폴링한다는 것을 의미합니다.


요즘 가장 좋은 방법은 H/5 * * * *5 분마다 해싱 팩터를 사용하여 모든 작업이 정확히 같은 시간에 시작되는 것을 방지하는 것입니다.


그것은 오래된 질문입니다. 그러나 나에 따르면 정답이 없다.

여기서 실제 / 최적의 워크 플로는 SVN의 커밋 후 후크를 통합하여 다른 경우가 아닌 실제 커밋이 실행 된 후에 만 ​​Jenkins 작업을 트리거하는 것입니다. 이렇게하면 SCM 시스템에서 불필요한 폴링을 피할 수 있습니다.

흥미로운 다음 링크를 찾을 수 있습니다.

회사의 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

반응형