favicon Jay Lee DevLog

📚 목차

이전 글까지 작업을 해두고

아무래도 실제 사내에서 사용중인 svn에 작업을 하다보니

svn commit이 발생할때 까지 기다리느라 오류 확인들을 못했었는데,

commit이 발생한 후 여러 오류들이 발생했었다.

이에 대해 간단하게 정리하고

다음글에서 배포까지 하고 끝내는 걸로 하려한다.


1. svn 버전 낮아서 발생했던 문제

위와 같이 2건의 commit이 발생했는데.

뭐가 바꼈는지 확인해보기 위해 콘솔 출력 부분을 확인해봤다.

 

그랬더니 위와 같이 svn 버전이 너무 낮아서 svn upgrade가 필요하다는 에러가 발생하고 있었다.

해결 방법은 간단하다.

위의 workspace가 jenkins에서 svn checkout을 하는 경로이다.

해당 경로로 이동한 후에 svn upgrade 실행하면 해결된다.

주의할점은 경로의 소유권이 jenkins로 되어야 하기 때문에 혹시라도

jenkins가 아닌 다른 계정으로 로그인해서 upgrade를 했다면

sudo chown -R jenkins:jenkins /var/lib/jenkins/workspace/svn-project

 

해당 명령 실행해서 권한 바꿔줘야 한다.

 

이후 다시 빌드를 해봤더니 또 오류가 발생했었다.

 

2. ssh host 인증 안되는 문제

이번에는 아래와 같은 문제가 발생했다.

이건 ssh 자주 써보면 뭔지 보자마자 아는데,

호스트 인증이 안돼서 jenkins가 svn 서버로 로그인할때 패스워드를 입력해야하는 상황이라 그렇다.

 

해결방법은 다음과 같다.

2-1. 먼저 jenkins의 공개키 생성

sudo -u jenkins ssh-keygen -t rsa -b 4096 -C "jenkins@ci"

 

2-2. svn 서버로 키 복사

sudo -u jenkins ssh-copy-id jungjin.lee@192.168.12.11 # "svn server IP"

 

2-3. 접속 잘되는지 확인

sudo -u jenkins ssh jungjin.lee@192.168.12.11 # "svn server IP"

 

여기까지 했을때 패스워드 입력없이 svn server에 접속되면 해결이다.

 

여기까지 다 하고 나서 기존의 스크립트를 조금 수정해줬다.

#!/bin/bash

# 현재 작업 디렉토리 (빌드 시 자동으로 설정됨)
echo "workspace : $WORKSPACE"
cd $WORKSPACE

# 현재 revision 가져오기
REV_CUR=$(svn info | grep '^리비전:' | awk '{print $2}')
echo "Revision : $REV_CUR"

# 이전 revision 가져오기
REV_PREV=$(($REV_CUR - 1))
echo "Revision Prev: $REV_PREV"

# 변경된 내용을 파일로 저장
SVN_SSH="ssh -i /var/lib/jenkins/.ssh/id_rsa" svn diff -r $REV_PREV:$REV_CUR > $WORKSPACE/svn-changes.diff

# 콘솔 출력
echo "SVN 변경 내용 (리비전 $REV_PREV → $REV_CUR):"
cat $WORKSPACE/svn-changes.diff

 

이렇게 수정하고 실행해보면,

이런식으로 바뀐 내용을 확인할 수 있다.

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.