'개발관련/기타'에 해당되는 글 2건
- 2015.11.26 :: CI Jenkins 설치 및 github 연동(2)
- 2015.11.26 :: CI Jenkins 설치 및 github 연동(1)
프로젝트를 생성해보자.
새로운 item 을 클릭후 item 이름(프로젝트 이름)을 써주고 maven project를 체크 해주자.
그리고 ok 누르고 설정을 끝낸다.
이제 github에 프로젝트를 먼저 올려놔야 한다. 이부분은 생략 한다.
새로운 프로젝트(?)를 한개 생성했다. 이제 구성을 해보자. 만들어 놓은 item을 클릭 하고 왼쪽에 구성을 누르자.
github에 올려놓은 프로젝트의 url을 복사후 GitHub project에 url 주소를 설정한다. https://github.com/xxxx/xxxx 이런식으로 될것이다.
소스 코드 관리
우리는 github에서 소스를 가져오므로 git을 설정하고 소스의 url을 써준다. Repository URL에는 아래 그림과 같이 git에서 제공하는 git주소를 복사한 후 넣어준다.
만약 인증을 해야한다면 Credentials에 아이디와 패스워드를 입력하면 된다.
빌드유발 - Poll SCM 을 설정하고 나머지 설정(시간 설정)은 하지말자. 시간 설정 부분은 crontab 설정과 동일하니 찾아보길...
Build
Root POM 의 값은 pom.xml 있는 곳을 써야한다. 만약 현재 프로젝트가 test일 경우 하위 폴더에 pom.xml 있다면 pom.xml을 쓰면되지만 test/test1/pom.xml 이 있다면 test1/pom.xml을 써야한다.
Goals and options는 maven을 어떤 형태로 빌드 할 것인지 쓰는 부분이다. 보통은 clean install을 하겠지만, 여러명에서 개발을 하는 분이라면 아마도 resource 파일이 분리 되어있을 것이다. maven 옵션의 "-P프로필"을 써야한다. ex) clean install -P프로필
이번엔 프로젝트의 pom.xml을 설정 해야한다. -P프로필을 쓸려면 먼저 maven 설정 파일을 추가해야할 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <!-- maven 빌드에 사용하는 java version 안쓰면 maven project가 compile 버전과 동일시 되게 설정 된다. 그러므로 다른 버전을 쓰고 싶으면 필히 넣어 놔야한다. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.6</source> <target>1.6</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin> <!-- maven 자체에서 junit 테스트를 통해 결과를 xml로 변환해주는 빌드 plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit47</artifactId> <version>2.18.1</version> </dependency> </dependencies> <configuration> </configuration> </plugin> <!-- maven내에서 war 를 묶기 위한 plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <webResources> <resource> <!-- 어떤 resource 폴더 경로 --> <directory>src/main/resources-${environment}</directory> <!-- resource 파일내의 빌드 할 파일 타입 --> <includes> <include>*.properties</include> <include>*.xml</include> </includes> <filtering>true</filtering> </resource> </webResources> <!-- 빌드할 경로 --> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration> </plugin> | cs |
위와 같이 maven 파일의 build tag안에 위에 문구를 넣어준다.
빌드 후 조치
우리는 war파일로 빌드 할 것이므로 먼저 tomcat의 tomcat-user.xml 열어보자.
1 2 | <role rolename="jenkins"/> <user username="admin" password="admin" roles="jenkins"/> | cs |
위와 같이 유저를 등록한다. 이후 다시 tomcat을 구동 후 jenkins 설정으로 돌아온다.
빌드 후 조치 추가 버튼을 누르면 Deploy war/ear to a container 라는 문구를 클릭한다.
tomcat 주소 및 아이디 패스워드를 등록하고 war/ear files 에 **/*war라고 써준다.
context path는 빌드 할 프로젝트의 context path를 등록해주면 된다. (webapp의 context path)
그리고 저장한다. 여기 까지 jenkins의 셋팅이 끝났다.
다시 정리 해보면
1. eclipse에서 github으로 commit/push를 한다.
2. github에서 hook를 통해 jenkins로 전달 한다.
3. jenkins에서 빌드되며, 빌드 후 조치로 미리 설치된 tomcat was에 빌드가 될것이다.
4. 설치된 tomcat was의 context path로 접근하면 된다.
위 작업 대로 되는지 보자..
커밋을 하면 아무것도 안될 것이다.....=_=;
위 2번째 항목을 안한 것이다. github에 hook을 설정하자.
github의 빌드할 프로젝트의 오른쪽에 settings를 클릭한다.
위와 같은 그림이 나올것이다. 왼쪽의 webhook & services를 클릭 후 위와 같은 화면이 나온다.
Available Services에 jenkins라고 입력하면 두가지가 나온다 이때 git plugin을 선택한다. (github plugin은 안되더라구여;;; )
여기에 jenkins url을 써주자. 내부 아이피는 불가하니 필히 외부 아이피로 등록해야한다.
필자의 경우 http://xxx.xxx.xxx.xxx/jenkins 이다. 앞서 설명한 jenkins 시스템 설정의 url과 동일하다. 그러니 둘다 외부 아이피로 등록해줘야한다.
이제 위에 순서대로 될것이다.
젠킨스는 아래 그림으로 설명이 된다.
(출처 : http://www.ranorex.com/blog/integrating-ranorex-automation-in-jenkins-continuous-integration-process)
머 대략 개발자는 svn또는 git에 commit을 하고 이를 캐치한 jenkins는 빌드를 진행한다. 이때 각종 코드며, 테스트며 jenkins가 알아서 해주며 이를 개발자 또는 테스터가 바로 볼수가 있다.
그럼 설치 gogogogo~
설치 자체는 간단하다. https://jenkins-ci.org/ 이 사이트 들어가서 오른쪽 상단의 war를 받자. war파일은 내부에 jetty로 구현 됬으므로 실행하면 되고 또는 tomcat 안에 webapp에 넣고 실행하면 된다.
스케쥴 설정에 따라 일정 주기마다 빌드 될수도 있고 소스에 업데이트가 일어났을때를 감지해서 자동으로 빌드 될수도 있다.
여러 빌드 도구를 지원하고 설치한 빌드 도구의 경로를 젠킨스 설정에 등록만 하면 사용 가능 하다.
빌드 결과를 기록하고 빌드 된 시점의 소스 버전 관리를 해준다.
위의 그림에서 필요한 것들은 tomcat, jdk, git 저장소 , Maven 이 필요하다. 이것들 설치는 생략한다. (현재 centos 6.x에 설치)
그럼 환경 구성 시작.
jenkins를 구동하면 왼쪽에 jenkins 관리 가 있다. 이후 플러그인 관리로 들어가자. 친절하게 한글이다.
디렉토리 설정
디렉토리는 알아서 설정이 되있다. 젠킨스 자체의 설정파일, 데이터 등이 저장되는경로를 등록한다
JDK 설정
name은 jenkins의 환경변수로 인식할 이름을 써주고, JAVA_HOME은 os상에 설치된 경로를 써주면 된다.
Git 설정
intall automatically를 설정하면 아마도 root 권한으로 jenkins를 깔아야 되는걸로 알고있다. 그러므로 필자는 root에 먼저 yum을 이용해 설치했다.
이후 whereis git 으로 경로를 찾은후 name과 git 경로를 설정한다. jdk 비슷하다.
Maven 설정
maven 도 마찬가지로 이름과 경로를 써주면 끝난다.
나머진 default로 둔다. (sonargube는 나중에 다시) 그리고, 저장.
이제 jenkins의 환경 설정이 끝났다.