Hudson 의 프로젝트 적용 방안 삼성SDS 자바커뮤니티 세미나 2009년 5월
CI(Continuous Integration) 등장 배경 Integration Hell XP 의 12가지 프랙티스의 하나 Continuous Integration - Martin Fowler 2000.9.10 CruiseControl 을 시작으로 23 개의 툴(위키피디 아)
CI 의 트렌드 전통적 방식 요즈음의 CI 하루 한 번 이상의 통합 빌드 Compile XUnitTest Static Analysis Smoking Testing Regression Testing Performance Testing
Hudson 의 특징 쉬운 설치, 운영 매력적인 UX 왕성한 오픈소스 커뮤니티 활동 java –jar hudson.war 손쉬운 Plug-in 설치 및 업그레이드 매력적인 UX Yahoo! User Interface 왕성한 오픈소스 커뮤니티 활동 현재 Version 1.304 140 여개의 플러그인
Hudson 이용 사례 Daily Build Automated Unit Test Automated Source Code Inspection PMD FindBugs Checkstyle Automated Deployment
Hudson의 프로젝트 도입 방안 1/3 효과적인 개발환경 구성 상호 호환성 고려 서버 운용 고려 리포트 조회 경로 고려 형상관리, 이슈관리, 인스펙션 툴 서버 운용 고려 Hudson – Master, Slave 형상관리, 이슈관리 서버 WAS, 웹서버 리포트 조회 경로 고려 위키, RSS, Mail, Google Calendar
Hudson의 프로젝트 도입 방안 2/3 프로젝트에서의 Hudson 역할 정의 ACL 정의 Build Automation Test Automation Source Code Inspection 정보시스템 감리 대비 Deployment Automation CI Game ACL 정의 모든 사람 PM, PL, QAO, CMO
Hudson의 프로젝트 도입 방안 3/3 Continuous Integratrion Anti-Pattern 빈번하지 않은 체크는 통합을 지연시킨다. 깨진 빌드는 팀이 다른 태스크로 이동할 수 없게 한 다. 최소한의 피드백으로는 어떤 액션도 취할 수 없다. 스팸 피드백을 받으면 사람들은 메시지 자체를 무 시하게 된다. 느린 머신을 사용하면 피드백이 지연된다. 팽창된 빌드에 의존하면 신속한 피드백을 받을 수 없다.
Hudson 사용 팁 HUDSON_HOME=D:\hudson java -jar hudson.war --httpPort=8081 개발 서버에 간단히 반영할 수 있는 작업 생성으 로 디자이너 반영 지원 CI Game J2SE 1.4 환경에서 FindBugs 사용하기 VM 은 JAVA 5.0 을 사용함 Invoke Ant 의 Advanced / Java Options 에서 -Dant.build.javac.target=1.4 추가