- 오픈소스 지속적 통합 CI(continuous intergration) 툴로 JAVA로 만들어 졌음
- csv, svn, git 등의 소스 툴을 지원하고 ant와 maven등의 빌드 툴을 지원함
- 배포 파일은 Java Web Archive(.war) 형태로 제공
- 다양한 플러그인을 지원함
- 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것
- 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것
- 작은 단위의 작업, 빈번한 적용. 지속적인 통합은 모든 개발을 완료한 뒤에 퀄리티 컨트롤(QC) 을 적용하는 고전적인 방법을 대체하는 방법
- 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점이 맞추어져 있음
- 엔티티 생산에 관련된 모든 품질 요인을 검토하는 과정
- 소스 코드 체크아웃
- 분산 빌드
- 빌드 및 테스트 자동화
- 테스트 보고서 작성
- Groovy script 를 이용한 Job 스케줄링 기능
- 커맨드라인 인터페이스 제공
- 윈도우커맨드 스케줄링 실행 가능
- 실행결과를 통보
- 결과물을 저장
- 자동 배포
brew install jenkins
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins
- 설치 후 http://127.0.0.1:8080/ 자동실행됨
- 시작 명령어
launchctl load homebrew.mxcl.jenkins.plist
service jenkins start
- 종료 명령어
launchctl unload homebrew.mxcl.jenkins.plist
service jenkins stop
- 깃헙 관련 플러그인
Git plugin
Github plugin
- 그루비 플러그인
Groovy
- 그래들 플러그인
Gradle plugin
- 그레일즈 플러그인
Grails plugin
- 배포 관련 플러그인
Deploy to container plugin
- FTP 관련 플러그인
Publish Over FTP
- 프로젝트 생성 : item 이름 설정후, 'Maven project' 클릭
- 프로젝트 설명 : 프로젝트 설명과 '오래된 빌드 삭제' 여부 선택
- 소스 코드 관리 : Git 소스 관리 프로젝트인 경우
- 빌드 설정 : 매 30분마다 확인 후 변경 내용이 있으면 빌드
- 빌드 전에 실행할 내용 : 샘플 스크립트 파일을 실행
- 빌드 : pom.xml 의 경로 설정
- 빌드 후에 실행할 내용 : 그루비 문법 테스트
- Email 알림 설정
- 빌드하기 : 'Build Now' 를 클릭
- 빌드결과
- 빌드유발에서 'Build when a change is pushed to GitHub' 체크박스 선택
- Github 프로젝트에서 'Settings' 클릭
- 'Webhooks & Services' 탭 클릭
- Add Service 에서 'Jenkins (GitHub plugin)' 클릭
- Jenkins hook url 을 설정 (127.0.0.1:8080 또는 localhost:8080 은 안됨)
- 빌드
<tomcat-users>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<user username="admin" password="1234" roles="manager-gui, manager-script"/>
</tomcat-users>
- tomcat/conf 에서 tomcat-users.xml 파일에서 위의 내용 추가
- 젠킨스 관리에서 플러그인(Deploy to container plugin) 및 시스템 설정 후
- 톰캣서버 버젼 선택
- tomcat-users.xml 에 등록한 username, password 입력 후
- Tomcat URL 설정
- 빌드
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.542</version>
</parent>
<repositories>
<repository>
<id>jenkins-releases</id>
<url>http://repo.jenkins-ci.org/releases</url>
</repository>
<repository>
<id>repo.jenkins-ci.org</id>
<url>http://repo.jenkins-ci.org/public</url>
</repository>
</repositories>
- 프로젝트 pom.xml 위의 내용을 추가
- 테스트케이스 작성 후
- 빌드
-
지속적인 통합 위키백과
http://www.slideshare.net/agebreak/140315-cihttp://gold9ine.tistory.com/8
-
퀄리티 컨트롤 위키백과
-
관련 블로그
- https://www.davidlab.net/ko/tech/how-to-build-android-apps-with-jenkins/
- http://stackoverflow.com/questions/30576881/jenkins-build-when-a-change-is-pushed-to-github-option-is-not-working
- https://mkyojung.wordpress.com/2014/06/26/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-gradle-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B3%A0-jenkins-%EC%84%A4%EC%A0%95/
- http://stackoverflow.com/questions/21655838/jenkins-service-start-error-on-red-hat-linux
- http://blog.iotinfra.net/?p=363
- http://umsh86.tistory.com/entry/jenkins-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-2
- https://devblood.wordpress.com/2013/10/08/jenkins-buid-%EB%B0%8F-deploy-%EC%84%A4%EC%A0%95/