SVN(형상관리)와 연결하여 젠킨스가 최신의 소스를 가져와서 빌드하기 위한 설정.

 

 

 

 

새로운 ITEM 클릭

 

 

Freestyle project 선택

 

 

 

소스 관리 부분에 SVN설정

Repository URL : svn url

Credentials : Add 버튼을 클릭하여 실제 svn에 접속이 가능한 svn 계정과 비밀번호 입력

 

위와 같이 기본적인 설정을 마친 후 저장.

 

 

 

Build Now를 클릭

 

 

바로 아래에 build history에 빌드 완료(파란색) 여부가 표시되고

 

 

 

 

작업공간을 클릭시 정상적으로 svn의 소스를 가져 온 것을 확인하여 SVN과의 연결 완료

'WEB > CI CD' 카테고리의 다른 글

2. Jenkins 설치  (0) 2020.03.03
1. CI / CD 개념  (0) 2020.03.03

 

이 글에서는 Linux, tomcat환경에서의 설치를 설명합니다.

 

 

 

https://jenkins.io/

 

Jenkins

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

jenkins.io

 

 

Jenkins에서 제공하는 파일은 대표적으로 *.war , rpm 형식을 제공합니다.

 

 

여기서는 war형식의 젠킨스를 다운받아 다음과 같은 명령어로 바로 구동됩니다. (설치과정없음)

java -jar jenkins.war.  혹은 java -jar jenkins.war --httpPort=9090

https://jenkins.io/doc/book/installing/#war-file

 

그외 apt-get, yum, rpm으로 설치하는 방식이 있으며, 

 

war방식은 신경쓸것없이 바로 구동이 되는 반면 rpm은 아주 조금 까다로우나 jenkins workspace(war가 생성되는 위치)경로등 기타 설정을 할 수 있다는 장점이 있습니다.

 

여기에서는 war파일을 통하여 진행하겠습니다.

 

 

 

젠킨스를 실행할 때 아래와 같이 

nohup java -jar jenkins.war --httpPort=8888 & 

로 수행하여 백그라운드 및 터미널이 닫혀도 젠킨스가 유지되도록 합니다.

 

 

 

위의 명령어로 수행시 터미널에 아래와 같은 화면이 나오지 않습니다. (nohup.out 파일에 있는 내용입니다)

 

위에서 패스워드가 나오고 이것을 그대로 복사 한 후 unlock시 사용합니다.

 

 

https://jenkins.io/doc/book/installing/#unlocking-jenkins

 

 

 

 

 

jenkins.war 수행 시 기입한 포트명으로 localhost:8888 로 접속 시 설치 확인

 

 

 

 

- 설치 후 위의 로그인 창 전에 플러그인 설치를 묻는데 어느것을 선택해도 무방합니다. 추후 플러그인은 얼마든지 제거/수정이 가능하기 때문입니다.

'WEB > CI CD' 카테고리의 다른 글

3. SVN과 연결  (0) 2020.03.03
1. CI / CD 개념  (0) 2020.03.03

 

 

정의 : CI(지속적인 통합) / CD (지속적인 배포)를 통하여 애자일 방법론을 실현시킨다. 애자일을 실현시키기 위하여 ci/cd한다

 

 

애자일에 대해 간략 설명하자면, 기존의 폭포수 모델의 개발 방법론은 최초 고객의 요구사항을 얻어 개발이 진행된다. 그러나 고객의 요구사항은 수시로 바뀌고 처음 설계한 컨셉과 달라지기 때문에 유연하게 대처하기가 곤란해지며 이는 일정 지연, 품질의 저하로 이어진다. 이러한 요구사항에 대응하기 위하여 폭포수 모델과 달리 개발 과정 중에 수시로 고객에게 프로토타입으로써 결과물을 보여주고 피드백을 받고 수정하여 대응한다.

 

 

 

 

우측 상단, Continuous Visibility를 실현

 

CI를 실시함으로써의 이점은 다음과 같다.

  • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
  • 자동화 테스트 수행 ( 테스트를 거치지 않는 CI는 불완전하다. 반드시 수행해야함)
  • 정적 코드 분석에 의한 코딩 규약 준수여부 체크
  • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
  • 결합 테스트 환경에 대한 배포작업

단점은 다음과 같다.

  • 다른 개발자의 코드들을 합쳐보니 실행이 안된다. ( 머지 이슈 )
  • 내 PC에서는 됐는데 통합하니 실행이 안된다. ( 환경적인 이슈 )
  • 통합되기 전에는 자신이 갖고 있는 소스가 최근 통합된 코드가 아닐 수 있다.
  • 통합되기 전에는 개발 중간 과정을 눈으로 확인하기 힘들다.

 

체계가 확립되지 않은 곳에서는 개발자가 war파일을 ftp로 직접 업로드 후 WEB/WAS를 재시작하거나 수정된 일부분의 파일을 직접적으로 올리면서 수정하고 있다.

개발환경을 맞추었다고는 하나 여러명의 개발자가 자신의 pc에서 각자 개발한 소스를 최종적으로 병합하는 과정에서의 문제가 발생할 수 있고, 서버에 반영하는 과정에서의 Human error등의 위험성이 있다.

또한 Local에서 개발하여 테스트 후 다시 운영 서버에 반영 후 테스트등의 작업에 적잖은 시간을 소모한다. 

 

 

이를 위해 CI 툴인 jenkins등을 통하여 아래와 같은 방법으로 CI를 실현한다.

 

1. 각자 개발자는 형상관리 서버에 커밋한다.

2. CI툴(젠킨스)는 소스 변경을 탐지(혹은 스케줄링등 특정 조건에서 발동하게 셋팅가능)

3. 젠킨스에 설정한 JDK등의 컴파일러 여러 기타 도구(maven, gradle)을 통하여 빌드

4. 빌드에 성공하면 junit등의 테스트 수행

5. 테스트까지 성공하면 WEB/WAS서버에 자동으로 배포( 쉘 스크립트등을 통한 web 서버 재시작)

 

 

 

"고객이 확인할 수 있게 항상 빌드가 깨지지 않게 유지하는 것이 중요합니다."

 

 

간단히 요약하자면 "커밋하면 자동으로 테스트(테스트코드가 있다면)와 빌드를 수행하고, 에러가 발생하지 않는다면 타겟(개발/운영)서버에 배포해준다."

 

 

 

 

'WEB > CI CD' 카테고리의 다른 글

3. SVN과 연결  (0) 2020.03.03
2. Jenkins 설치  (0) 2020.03.03

+ Recent posts