이제 svn commit을 확인까지 해봤고,
어떤 내용이 변경되었는지 확인하는 로직을 추가해보려 한다.
1. Commit 내용 확인
먼저 job 클릭 후 Configuration -> Triggers -> Build Steps -> Add build step -> Execute shell 클릭
본인이 스크립트 짤 줄 아시는 분이면 알아서 하시면 되고,
아니면 아래 처럼 입력
-> svn diff로 나온 결과를 파일로 빼고, 그 파일 값을 cat 하는 로직
#!/bin/bash # 현재 작업 디렉토리 (빌드 시 자동으로 설정됨) WORKSPACE=$(pwd) # 현재 revision 가져오기 REV_CUR=$(svn info | grep '^Revision:' | awk '{print $2}') # 한글 버전이면 Revision을 리비전 으로 교체 # 이전 revision 가져오기 (이건 약식, 정확하게 하려면 저장해야 함) REV_PREV=$(($REV_CUR - 1)) # 변경된 내용을 파일로 저장 svn diff -r $REV_PREV:$REV_CUR > $WORKSPACE/svn-changes.diff # 콘솔 출력 echo "SVN 변경 내용 (리비전 $REV_PREV → $REV_CUR):" cat $WORKSPACE/svn-changes.diff |
이후 지금 빌드 클릭하여 테스트.
그리고 생성된 작업을 클릭하여 Console Output을 확인해보면,
추가한 내용이 나온다.
지금은 변경 내용이 없어서 이렇게 나오는 듯 하다.
2. Builds Name 변경
일단 Groovy Postbuild 플러그인을 설치.
작업 클릭 -> 구성 -> 빌드 후 조치 -> 빌드 후 조치 추가 -> Groovy Postbuild
아래의 내용 입력 및 저장
def log = manager.build.getChangeSet().getItems() if (log.length > 0) { def commitMsg = log[0].getMsg().take(50) // 커밋 메시지 앞 50자 manager.build.displayName = "#${manager.build.number} - ${commitMsg}" } |
이후 빌드를 다시 해보면
이런 에러가 발생한다.
Groovy Sandbox에 대한 보안 정책때문에 발생하는 에러다.
해결방법은 아래와 같다.
Jenkins 관리에서 In-process Script Approval에 1 표시가 들어온 모습을 볼 수 있다.
클릭해서 들어가면 'getBuild' 라는 메소드에 대한 허용 여부를 선택할 수 있다.
여기서 Approve 눌러주면 된다.
하다보면 몇개 더 추가해야 될 수도 있다.
'Cluster > CI CD' 카테고리의 다른 글
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 5. Poll SCM이 아닌 WebHook을 사용하여 commit 빌드하기 (0) | 2025.04.24 |
---|---|
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 4. 지금까지 작업하면서 발생했던 오류 내용 정리 (0) | 2025.04.23 |
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 2. Jenkins에서 SVN commit 확인 (0) | 2025.04.22 |
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 1. Jenkins 설치 및 svn 저장소 등록 (1) | 2025.04.21 |
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 번외편. 동시성 개선 (0) | 2025.03.26 |