2015. 10. 27. 14:39ㆍ프로그래밍/지식창고
소개
연속적 빌드, 인테그레이션은 프로젝트 성공 여부를 결정짓는 요소이다.
CI에서는 빌드의 정의에 모든 중요한 유효성 검사와 테스트 단계를 포함한다.
CI 사용시 알아두어야 할 점
빌드가 실패한 경우 그대로 방치하지 않는다.
실패한 빌드를 제출하지 않는다.
실패한 빌드를 분석하고 연관된 개발자에게 이를 알린다.
CI의 특징
- 코드 일관성 유지 : 소스 관리 시스템을 필요로 한다.(GIT, SVN)
- 자동 빌드 : 커밋에 의한 자동 빌드, 시간 간격에 의한 자동 빌드
- 자동 테스팅
- 일일 체크아웃과 빌드 : 최신 코드를 내려받을 수 있고 소스의 무결성을 유지
CI의 프로세스
개발자 프로세스
- 소스 관리 시스템으로부터 업데이트
- 개발
- 로컬에서 빌드 및 테스트
- 코드 커버리지 분석, 코드 인스펙션 수행.
- 완료된 코드 소스 관리 시스템에 저장.
CI Tools 프로세스
- 체크아웃, 업데이트 : 최신 소스코드를 받는다.
- 컴파일 : 체크아웃 코드에 내장되어 있는 빌드 스크립트를 가동하여 컴파일을 수행.
- 배포 : 컴파일이 완료된 코드를 테스트 서버에 배포.
- 테스트 수행 : 체크아웃 코드 내의 테스트 코드를 수행하고 리포팅.
- 커버리지 분석 : 테스트 과정 중 코드 커버리지를 수행.
- 코드 인스펙션
- 소스 태깅 : 현재 소스 관리 시스템에 저장된 버전에 tagging을 하여 저장.
- 리버스(optional) : 빌드나 테스트가 실패할 경우 성공한 빌드 버전으로 소스 롤백
- 결과 분석 : 빌드와 테스트 완료 후 테스트 결과서를 통해 문제가 있는 테스트를 개발자가 수정.
CI 툴 종류
Cruise Control - 가장 유명한 CI 툴 중 하나.
Jenkkins - Java Servlet Container 기반으로 돌아가는 CI 툴.
TeamCity - 상용 CI 툴
'프로그래밍 > 지식창고' 카테고리의 다른 글
[용어] Third Party (0) | 2016.01.06 |
---|---|
[MAC] 배터리 관련 앱 (0) | 2015.12.05 |
[컴파일] MSBuild (2) | 2015.10.28 |
[기술동향] Hololens (1) | 2015.10.08 |
[용어] 심리스 월드 (1) | 2015.09.23 |
PCB (3) | 2015.09.08 |
[티스토리] 타이틀 로고로 바꿔보기 (4) | 2015.09.04 |