Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준 java jaekjoon JAVA
- linux
- ora-01476
- 서버 접근
- putty
- bekjoon
- boj
- 백준 JAVA
- tomcat-users.xml
- 1773번
- jsonb select
- SVN
- available plugins
- jaekjoon java
- rocky linux
- 백준
- 사용법
- poll scm
- 환경번수
- javascript
- DBeaver
- 메뉴얼
- 제수가 0입니다
- Rocky Linux 9
- baekjoon
- 자바
- PostgreSQL
- subversion
- jenkins
- java
Archives
기록하는 개발자
Jenkins SVN 커밋시 자동배포 본문
SVN 커밋 발생시 Hooks(post-commit)를 활용하여 commit 기록을 Jenkins에 전송해주고
Jenkins에 주기적으로 확인하도록 설정 후 commit 기록을 발견할시 자동 빌드 및 배포 하도록 세팅하였습니다.
SVN Hooks 설정
Hooks란? 특정 이벤트가 발생할때 자동으로 실행되는 정의 스크립트
post-commit 스크립트 추가
post-commit란? 커밋이 완료한 자동으로 실행됨
cd /[svn경로]/[repository]/hooks/
vi post-commit
post-commit 내용 수정
#!/bin/bash
REPOS="$1"
REV="$2"
UUID=$(svnlook uuid $REPOS)
CHANGED_PATHS=$(svnlook changed --revision $REV $REPOS)
# 변경된 경로에 '[기준경로]/[프로젝트명]'가 포함된 경우에만 Jenkins에 알림
if echo "$CHANGED_PATHS" | grep -q "[기준경로]/[프로젝트명]"; then
JENKINS_URL="http://0.0.0.0:8080/jenkins"
CRUMB=$(wget -q --output-document - "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)")
/usr/bin/wget \
--header "Content-Type:text/plain;charset=UTF-8" \
--header "$CRUMB" \
--post-data "$CHANGED_PATHS" \
--output-document "-" \
--timeout=2 \
"$JENKINS_URL/subversion/$UUID/notifyCommit?rev=$REV"
fi
commit 범위 지정
if echo "$CHANGED_PATHS" | grep -q "[기준경로]/[프로젝트명]"; then
한개의 리포지터리에 여러 버전의 프로젝트가 세팅되어 있어서
grep -q로 커밋된 파일의 전체 경로중에 "[기준경로]/[프로젝트명]"가 포함되어 있는지 확인하는 부분이 추가되어 있습니다.
jenkins URL 지정
JENKINS_URL="<http://0.0.0.0:8080/jenkins>"
저장
:wq
실행 권한 부여
chmod +x post-commit
Jenkins 설정
Jenkins 관리 페이지 → 프로젝트 → 구성
빌드 유발
Poll SCM
H/5 * * * * 입력 후 저장
* 5분마다 SVN 이 보낸 변경사항을 확인
참고자료
'서버 > Linux' 카테고리의 다른 글
Linux OpenJDK 설치 및 환경변수 설정 (0) | 2024.06.20 |
---|---|
Linux Jenkins SVN 연결 (0) | 2024.06.18 |
Linux eGovframework CI Jenkins 버전업 (1) | 2024.06.17 |
PC에서 리눅스 서버에 접근하기 위한 WinSCP 및 PuTTY 설정 (0) | 2024.06.17 |
Rocky Linux svn 설치 (0) | 2024.06.17 |
Comments