[CI] CI(Continous Integration) 툴 기초. CI란?

2015. 10. 27. 14:39프로그래밍/지식창고

728x90
728x90

연속적 빌드, 인테그레이션은 프로젝트 성공 여부를 결정짓는 요소이다.

CI에서는 빌드의 정의에 모든 중요한 유효성 검사와 테스트 단계를 포함한다.


CI
빌드가 실패한 경우 그대로 방치하지 않는다.
실패한 빌드를 제출하지 않는다.
실패한 빌드를 분석하고 연관된 개발자에게 이를 알린다.


CI의 특징

- 코드 일관성 유지 : 소스 관리 시스템을 필요로 한다.(GIT, SVN)

- 자동 빌드 : 커밋에 의한 자동 빌드, 시간 간격에 의한 자동 빌드

- 자동 테스팅

- 일일 체크아웃과 빌드 : 최신 코드를 내려받을 수 있고 소스의 무결성을 유지


CI의 프로세스
개발자 프로세스
- 소스 관리 시스템으로부터 업데이트

- 개발

- 로컬에서 빌드 및 테스트

- 코드 커버리지 분석, 코드 인스펙션 수행.

- 완료된 코드 소스 관리 시스템에 저장.


CI Tools 프로세스

- 체크아웃, 업데이트 : 최신 소스코드를 받는다.

- 컴파일 : 체크아웃 코드에 내장되어 있는 빌드 스크립트를 가동하여 컴파일을 수행.

- 배포 : 컴파일이 완료된 코드를 테스트 서버에 배포.

- 테스트 수행 : 체크아웃 코드 내의 테스트 코드를 수행하고 리포팅.

- 커버리지 분석 : 테스트 과정 중 코드 커버리지를 수행.

- 코드 인스펙션

- 소스 태깅 : 현재 소스 관리 시스템에 저장된 버전에 tagging을 하여 저장.

- 리버스(optional) : 빌드나 테스트가 실패할 경우 성공한 빌드 버전으로 소스 롤백

- 결과 분석 : 빌드와 테스트 완료 후 테스트 결과서를 통해 문제가 있는 테스트를 개발자가 수정.

CI 툴  종류
Cruise Control - 가장 유명한 CI 툴 중 하나.
Jenkkins - Java Servlet Container 기반으로 돌아가는 CI 툴.
TeamCity - 상용 CI 툴



728x90
반응형

'프로그래밍 > 지식창고' 카테고리의 다른 글

[용어] 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