2010-05-23 3 views
4

Hudson CI를 사용하여 레일 프로젝트를위한 자동화 된 "빌드"서버를 설정하려고합니다. 지금까지는 스펙을 실행하고 코드에서 메트릭을 수행 할 수 있지만 두 가지 다른 루비 버전에 따라 두 가지 프로젝트가 있습니다. 그래서 나는 RVM을 사용하여 루비 복사본을 여러 개 실행 한 다음 사전 빌드 단계에서 앞뒤로 전환하려고합니다.데비안에서 RVM with Hudson CI 서버를 사용하려면 어떻게해야합니까?

this one과 같은 몇 가지 게시물이 있는데이 작업을 수행하는 방법을 설명하지만 hudson의 시작 스크립트를 실행하지 않고 부팅 할 때 부팅됩니다. debian 명령을 통해.

문제는 hudson이 "hudson"계정으로 실행 되어도 계정에 rvm switch 1.8.7을 호출하기 위해 쉘 기반의 prebuild 단계를 실행하려고 할 때 rvm이 설치되어 있고 (작동 중) 문제가있는 것 같습니다. "rvm : command not found"오류

내가 뭘 잘못하고 있는지 확실하지 않습니다. 허드슨은 SH를 쉘로 사용하고 있지만 bash도 사용하고 있습니다. 불운.

이전에이 설정에서이 작업을 수행 한 사람이 있습니까? (!) :

SU=/bin/su 

... 변화 :

+0

'/ home/hudson/.profile'에'PATH'가 설정되어 있습니까? 'type -a rvm' (Bash) 또는'which rvm'은 무엇을 말합니까? –

+0

$ PATH는/usr/loca/bin입니다./usr/bin :/bin :/usr/games rvm은 아무 것도 반환하지 않지만 rvm을 입력하면 스크립트가 실행됩니다. 나는 rvm이 실제 응용 프로그램이 아닌 bash 스크립트라고 믿는다. type -a rvm은 "rvm은 함수"와 함수 내용을 반환한다. 내 .profile의 과 "hudson"사용자의 .bashrc 나는이 줄을 hudson doc 당 [[-s "$ HOME/.rvm/scripts/rvm"]]] 경우에 사용합니다. "$ HOME/.rvm/scripts/rvm"을 소스하십시오. fi 허드슨 계정에 내가 su이면 RVM을 사용할 수 있지만 해당 계정에서 실행되는 허드슨 서버는 찾을 수 없습니다. – JoshReedSchramm

+0

'$ HOME/.rvm/scripts/rvm' 파일에'export -f rvm' 문이 없으면'.profile'과'.profile' 파일에 주석으로 참조한'fi' 파일 바로 앞에 추가하십시오. '.bashrc'. 또한 답변이나 질문 게시자가 아닌 사람에게 댓글을 달 때 @user (내 경우에는 @Dennis)를 사용하여 답장을 보내지 않으면 댓글이나 답장을 볼 수 없습니다. 축약 된 사용자 이름이 작동합니다. 이 방법으로 주소를 지정하면 페이지 상단의 작은 알림 봉투가 켜집니다. –

답변

1

나는 당신과 같은 증상이있었습니다.

머리를 두 시간 동안 두 드리면 허드슨의 $ HOME 환경 변수를 확인하십시오 (http://yourserver/hudson/systemInfo에서 볼 수 있음).

우분투에서는 Tomcat 6 시작 스크립트가 $ HOME을 설정하지 않습니다. 어떻게 든, 허드슨 대신 내 $ 홈 상속!

나머지 ENV 선언 바로 아래 /etc/init.d/tomcat6 스크립트에 HOME = $ CATALINA_HOME을 추가 했으므로 이제는 모두 작동합니다. 확실히 성가신 문제.

3

편집 "/etc/init.d/hudson"와 라인 변경

SU="/bin/su -" 

을 ... 그리고 RVM을 추가 /home/hudson/.profile의 설정

관련 문제