반응형

[Jenkins] JUnit 연동


작성일자 : 2018년 10월 23일

목표 : Jenkins와 JUnit을 연동하여 Jenkins Build 진행 시 테스트 작업을 수행하도록 설정



1. Jenkins 설정


JUnit Plugin 설치




2. Project 설정


JUnit 사용 설정 및 테스트 케이스 생성

참고 : http://osc131.tistory.com/92


3. 확인


프로젝트에 기본적으로 JUnit 적용이 되어있다면, 플러그인 설치 후 젠킨스 빌드를 진행하면 별다른 설정 없이도 테스트를 진행


Build Log


반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 이전 저장소로 빌드  (0) 2018.10.20
[jenkins] GIT Publisher  (0) 2018.10.20
[Jenkins] 자동빌드 설정  (0) 2018.07.21
[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
반응형


[jenkins] 이전 저장소로 빌드


작성일자 : 2018 10 20

환경 : Jenkins 2.129, JDK 1.8.0_101

목표 : Jenkins 빌드 작업 진행 시 기존에 백업 된 저장소를 사용하여 빌드


* Jenkins - Git 설정 및 Git Publisher 설정 선행



1. Jenkins 설정


General > 빌드 매개변수 추가 > List Subversion tags (and more)



- tags에 있는 모든 백업 본 표시

- 최대 10개 까지만 표시




소스 코드 관리 설정



- 빌드에 사용할 저장소 설정

- VERSION은 위에서 설정한 매개변수 명이며, 사용할 이전 저장소들의 이름이 된다.



2. 확인 


General 설정에 의해 설정 경로에 있는 Tags들을 빌드 매개변수에서 확인 가능




빌드 후 확인





반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] JUnit 연동  (0) 2018.10.23
[jenkins] GIT Publisher  (0) 2018.10.20
[Jenkins] 자동빌드 설정  (0) 2018.07.21
[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
반응형

[jenkins] GIT Publisher


작성일자 : 2018 10 20

환경 : Jenkins 2.129, JDK 1.8.0_101

목표 : Jenkins Build 작업 진행 후 Build에 사용됐던 GIT 버전을 Tags로 저장 ( 일종의 백업 )


* Jenkins - Git 연동 설정 및 GIT Plugin 설치 선행 필요


 1. Jenkins 설정


소스 코드 관리



- Target Name 선언




빌드 후 조치



- Target remote name : 위에서 설정한 target name

- Tag to push : Publish할 tag 이름 설정




2. 확인


Jenkins Build

 


빌드 성공 후 .git/refs/tags/ 경로에 Build Number의 이름으로 생성된 tag 확인 가능



반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] JUnit 연동  (0) 2018.10.23
[Jenkins] 이전 저장소로 빌드  (0) 2018.10.20
[Jenkins] 자동빌드 설정  (0) 2018.07.21
[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
반응형

[Jenkins] 자동빌드 설정

 


# Poll SCM 옵션을 사용하여 자동빌드실행을 설정하며, SCM 연동이 우선되는 것을 권장


** 여기서에 빌드는 Compile + linking의 빌드가 아닌 Jenkins 내에서 작업을 의미하는 빌드입니다.

** mvn install에 의한 빌드 X

 

 

 

위 설정 값은 2분마다 한번 씩 SCM(Git, SVN..)의 수정(Commit) 여부를 확인하여 수정사항이 있을 시 빌드 실행

 

+++

ex)

10 간격으로 빌드 작업을 수행

H/10 * * * *


모든 시간의 30 동안에 10 간격으로 빌드를 수행

H(0-29)/10 * * * *


12 달은 제외하고 매달 1일과 15일에 한번씩 빌드를 수행

H H 1,15 1-11 * 

 


반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 이전 저장소로 빌드  (0) 2018.10.20
[jenkins] GIT Publisher  (0) 2018.10.20
[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
반응형

[Jenkins] 자동배포 설정


작성일자 : 2018 07 16

환경 : Jenkins 2.129, JDK 1.8.0_101, Maven 3.3.9, Tomcat 7.0.88, Git 1.8, Linux

서버 #1 - Jenkins, Git, Maven, JDK

서버 #2 – Tomcat


구성 : Jenkins - JDK, Maven 설치 및 경로 설정 / Git 연동 / Maven 빌드 설정 완료

               Jenkins 작업(Build) 실행 시 저장소 동기화 및 빌드 작업(mvn install) 후 .war 파일 target에 생성


시나리오 : Jenkins 작업(Build) 수행 시 생성되는 .war 파일을 원격 WAS 서버에 배포


 

# 사전에 Jenkins 작업을 수행하면 배포할 파일이 생성 되는 시점 까지의 설정이 우선되는 것을 권고



1. Tomcat 설정


$ vi $TOMCAT_HOME/conf/tomcat-users.xml

..

<tomcat-users>

..

 <role rolename="manager"/>

 <role rolename="manager-script"/>

 <role rolename="manager-gui"/>

 <role rolename="manager-status"/>

 <role rolename="manager-jmx"/>

 <user username="ID" password="password" roles="standard,manager,manager-script,manager-gui,manager-status,manager-jmx"/>


</tomcat-users>

..

 

 

manager-gui — Access to the HTML interface.

manager-status — Access to the "Server Status" page only.

manager-script — Access to the tools-friendly plain text interface that is described in this document, and to the "Server Status" page.

manager-jmx — Access to JMX proxy interface and to the "Server Status" page.

 

위에서 설정한 username, password 기억!




2. Jenkins 설정


플러그인 설치

 

 


 

프로젝트 설정


 



알맞은 컨테이너 추가


 


 

Username password에는 tomcat-users.xml(1. Tomcat 설정)에서 설정해준 username, password 입력


 


추가해준 Credentials, Tomcat, 배포 파일 설정

Context path를 지정하지 않을 경우 Jenkins Project target Default로 참조





3. 확인


빌드 시 서버에 자동 배포까지 진행

 

 

반응형

'Jenkins' 카테고리의 다른 글

[jenkins] GIT Publisher  (0) 2018.10.20
[Jenkins] 자동빌드 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
반응형

[Jenkins] Github 연동


작성일자 : 2018 07 16

환경 : Jenkins 2.129, Git 1.8, CentOS 6.3


 

1. Git 설정

 

GIT 토큰 발행


 






토큰 Don’t forget!



 

2. Jenkins 설정

 

2.1 Jenkins 서버에서 git 설치

 

yum install git로 설치 할 경우 RHEL/CentOS 6 에는 git 1.7 이 포함되어 있고 https protocol을 처리 못하는 관련 버그가 존재하므로 yum repository 를 제공하는 The PUIAS Computational repository 에서 최신 git 버전을 다운로드


$ wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/git-1.8.3.1-1.sdl6.x86_64.rpm

$ wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/perl-Git-1.8.3.1-1.sdl6.noarch.rpm

$ yum remove git -y

$ yum localinstall git-*.rpm perl-Git-*.noarch.rpm -y

 

 


2.2 Jenkins Web 설정


GIT 경로 설정 


 

 

 



Git 경로는 서버에서 아래 명령어로 확인 가능




Git 서버 설정



 

 


 

ID 생성 및 Secret에 위(1. GIT 설정) 에서 생성한 액세스 토큰 입력


 


Credentials 생성 완료 후 아래와 같이 설정 




Test Connection 후 아래 형태의 문구가 나오면 연결 성공

 


 

 

2.3 Jenkins 프로젝트 설정

 

Github에서 저장소 URL 확인





확인 한 URL로 Jenkins 프로젝트 설정




+++


GIT URL 입력 했을 때 아래와 같은 에러 발생 시


fatal: unable to access 'https://github.com/repository/': SSL connect error


$ yum update -y nss curl libcurl

 

+++


GIT Repository가 Private로 설정 되어 있을시 위 화면에서 추가로 Credentials에 git 아이디,비밀번호 설정이 필요  


3. 확인


GitHub 클릭 시 해당 저장소로 이동





첫 빌드 이후 작업공간 에서 연동 여부 확인 가능


 



반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동빌드 설정  (0) 2018.07.21
[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
[Linux] Jenkins 설치  (0) 2018.02.10
반응형

[Jenkins] SVN 연동

 

작성일자 : 2018 07 16

환경 : Amazon Linux AMI 2018.03, SVN 1.9.7, Jenkins 2.129, JDK 1.8.0_101

구성 : 서로 다른 서버에서 실행중인 SVN Jenkins를 연동

 


1. Jenkins 프로젝트 설정



URL svn://”IP”/”Path”

Credentials Username with password 옵션으 username password SVN에서 설정한 RW 가능 계정 정보 설정




 

2. SVN 서버 설정


# SVN 프로세스 실행

# 3690 Port Open 확인

 

 

3. 확인


첫 빌드 후 작업공간에서 연동 여부 확인



 


반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
[Linux] Jenkins 설치  (0) 2018.02.10
CI/CD  (0) 2018.02.08
반응형

[Jenkins] Maven 설정



작성일자 : 2018 07 16

환경 : Jenkins 2.129, JDK 1.8.0_101, Maven 3.3.9

구성 : Jenkins 서버 내 JDK, Maven 설치 및 환경변수 설정 완료

 



1. Jenkins 설정




경로 확인




JDK 경로 설정 (아래 노란 문구는 안뜨는게 정상 )




Maven 경로 설정





2. 프로젝트 설정


 

 


테스트 스크립트 작성.



위 예시의 경우 $M2_HOME/bin에서 mvn –version 명령어를 수행

 



3. 확인

 






 


반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Linux] Jenkins 설치  (0) 2018.02.10
CI/CD  (0) 2018.02.08
반응형

Jenkins 설치 



1. 권한 획득



현재 root가 아니라면 다음의 명령어를 사용하여 root 계정으로 바꾸어 줍니다. 모든 명령어에 앞에 'sudo' 를 붙여서 사용해도 괜찮습니다.

루트 계정으로 바꾸는 명령어: sudo su, su - root


2. Jenkins 저장소를 추가

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo



3. 설치를 위하여 Jenkins-CI에서 키 파일을 로드

sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key


4. Jenkins 설치

yum install jenkins

 

확인 문구가 나오면 y를 입력합니다.



5. Jenkins 서비스를 구동

sudo service jenkins start

 


+만약 다음과 같이 Java8을 사용해야 한다고 나온다면 자바 8을 설치해 주어야 합니다. 

 


자바 8 설치 방법

yum install java-1.8.0

yum remove java-1.7.0-openjdk




6. Jenkins 서버에 접속


Server IP:8080로 접속합니다. Jenkins의 기본 포트는 8080이기 때문에 Tomcat과의 포트 충돌에 주의하여야 합니다.

접속에 성공하면 다음과 같은 화면이 나옵니다. 

 


다음의 명령어를 사용하여 관리자 비밀번호 얻어서 입력하여 Jenkins를 Unlock 합니다.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

 



7. Jenkins 추천 플러그인을 설치

 [Install suggested plugins]를 선택합니다. 설치가 모드 끝날 때까지 기다립니다. 

 




8. 관리자 계정 생성

 






9. Jenkins 설치 및 기본설정 완료

 



반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
CI/CD  (0) 2018.02.08
반응형
 
소프트웨어 개발에서 유지보수로 연결되는 지점은 소스관리, 빌드, 배포의 활동이 됩니다. 물론, 소스코드 수정이 발생되기는 하지만, 소스관리/빌드/배포의 활동이 주로 발생하기 마련이며, 이는 유지보수 시점에 확실한 절차와 방법을 필요로 합니다. 오래 전부터 소프트웨어 개발에 있어서 위험을 줄이는 방식으로 개발 시점에서 이러한 활동을 지원하는 CI (Continuous Integration)가 사용되고 있었습니다. CI란 개발자가 각각 개발한 소스코드를 모아서 한꺼번에 빌드하는 통합 빌드의 과정을 특정 시점이 아니라 주기적으로 수행함으로써 통합에서 발생하는 오류를 사전에 해결하고 이러한 과정들에 소요되는 시간을 줄이기 위한 기법을 말합니다. 더 이상 빌드는 컴파일만을 의미하지 않으며, 소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발을 하게 되었고, 그 과정에 있어서 분업과 협업은 필수적이 되었습니다. 이 과정에서 소스 버전 관리 툴을 이용한 소스 코드의 merge 과정은 점점 까다로워져 도입한 솔루션이 바로 CI입니다 

 

 

CI/CD (Continuous Integration / Continuous Delivery or Deployment)란?

 

1. 지속적으로 퀄리티 컨트롤(품질 관리)을 적용하는 프로세스를 실행하는 것

 

2. 모든 개발을 완료한 뒤에 컬리티 컨트롤을 적용하는 고전적인 방법에 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 

    걸리는 시간을 줄이는데 초점

 

3. 초기에 그리고 자주 통합해서 통합 시 발생하는 여러가지 문제점을 조기에 발견하고, 피드백사이클을 짧게 하여 소프트웨어 개발의 품질과 

    생산성을 향상시키는 것.

 

 

CI 적용 시 고려할 점

 

1. 모든 소스 코드가 살아있고(현재 실행되고) 어느 누구든 현재의 소스를 접근할 수 있는 단일 지점을 유지할 것

 

2. 빌드 프로세스를 자동화시켜서 어느 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것

 

3. 테스팅을 자동화시켜서 단일 명령어를 통해서 언제든지 시스템에 대한 건전한 테스트 수트를 실핼할 수 있게 할 것

 

4. 누구나 현재 실행 파일을 얻으면 지금까지 최고의 실행파일을 얻었다는 확신을 하게 만들 것

 
 
 
CI/CD의 차이점
 
어디까지 자동화가 되어있느냐에 따라 달라집니다. 빌드 서버로 코드를 푸쉬 한 후 자동으로 빌드가 시작 되는 지점까지는 CI라 하며, 거기서 테스트를 거쳐 디플로이 과정까지 자동화가 되어있으면 CD라 한다 CD에서 또한 Deploy를 자동으로 해주냐, 수동으로 해주냐에 따라 Delivery, Deployment로 나뉘어집니다.
 
 

 

 

CI 시스템 구축을 위한 핵심 구성요소

 

1. CI Server : 빌드 프로세스를 관리하는 서버 

   ex) Jenkins etc..

2. SCM(Source Code Management)  :  소스코드 형상 관리 시스템

   ex) Git, SVN etc..

3. Build Tool : 컴파일, 테스트, 정적 분석 등으로 동작 가능한 소프트웨어를 생성하는 도구 

   ex)Maven, Gradle, Ant etc..

4. Test Tool : 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구 

   ex) JUnit etc..

 
 
 
CI 자동화 수행 절차
 
1. 소스코드를 바이너리 파일로 컴파일 한다.
 
2. 바이너리 파일을 배포 형태로 패키징 한다.
 
3. 단위 테스트를 수행한다.
 
4. 정적 분석을 수행한다.
 
5. 분석 결과를 리포팅 한다.
 
6. 패키징한 파일을 테스트 서버에 배포한다.
 
 
 
 
 
 

 

반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
[Linux] Jenkins 설치  (0) 2018.02.10

+ Recent posts