Jenkins Plugin review

나에게 필요할 것 같은 Jenkins Plugin을 찾아봤다.

주로 Job 생성, 관리, 설정을 간단하게 할 수 있는 것들인데 일부는 쓸모없거나 문제가 있는 것들도 보인다.

선별해서 사용할 예정인데, 이리저리 조사하고 써보니 Jenkins Plugin도 개발하고 개선할 것들이 꽤 될 것 같다.

Category Plugin Description Feature Note
Job 생성 Job Import Plugin 다른 Jenkins server에 있는 job을 선택적으로 import 할 수 있는 plugin Remote job selection
Remote job import
오류가 있으나 수정되지 않음
https://issues.jenkins-ci.org/browse/JENKINS-11185
Job 생성 Job Generator Plugin Parameter를 넘겨 주면서 job 생성이 가능한 plugin Generator parameter 전달 가능
Post build job에 parameter 전달 가능
Run Condition Plugin/Token Macro Plugin이 설치되어 있어야 함
특정 script를 몰라도 설정만으로 job 생성이 가능하지만 사용한다면 Job DSL Plugin이 더 간단할 것으로 보임
Job 생성 Job DSL Plugin DSL script(Groovy)를 이용해서 job을 생성하는 job을 만들 수 있는 plugin 생성할 job 정의하는 기능
Job 자동 생성
Tutorial 참조
Job 관리 Multijob Plugin 여러개의 job을 묶어서 순차적으로 실행할 수 있는 plugin Phase 구분
Phase 별 job 선택 가능
실패 조건 결정 가능
한 phase에 존재하는 복수의 job은 parallel로 실행됨
Parameterized plugin이 사전에 설치되어 있어야 함
Jenkins의 job이 너무 많은 경우 유용함
Job 관리 Nested View Plugin Job을 폴더 형태로 관리할 수 있게 해주는 plugin Subview 추가 View tab을 늘리면 가로로 추가되기만 하고 job이 늘어날 경우 보기가 어려워지는데 폴더 형태로 job을 정렬함으로써 job 갯수가 많은 경우 유용
Job 관리 Sectioned View Plugin 화면을 section으로 구분해서 더 다양한 정보를 보여주기 위한 plugin Test result/list view/job graph/text/view listing section 지원 Jenkins의 view 하나를 dashboard로 사용할 수 있을 것으로 보임
정적 분석이나 test 결과에 대한 정보 위주로 분석 툴이나 결과 data를 직접 활용하는 것이 효율적일 것으로 생각됨
Configuration Config File Provider Plugin 사전에 정의한 파일을 이용해 build에 이용할 수 있도록 해주는 plugin Maven settings.xml / plain xml / Groovy / plain text는 향상된 수정기능 제공
Configuration Managed Script Plugin Config File Provider Plugin에서 script 파일을 추가할 수 있는 plugin Batch / shell script 지원
Argument를 미리 정의해서 build job 설정시 argument를 설정해서 사용 가능
미리 정의된 build script를 하나로 관리하기 용이
Configuration Scriptler Plugin Groovy script를 미리 작성해두고 job 실행시에 사용할 수 있도록 지원하는 plugin Script 추가/수정/삭제
Github에 공유된 script 이용 가능
Script 보관하는 GIT repository 지원
Build 수행내용을 미리 Groovy로 작성한 후 일괄 적용하기 유용함
Master-slave Copy To Slave Plugin Build 전 master의 파일을 복사해 가거나 build 이후 slave에 있는 파일을 master로 옮겨올 수 있는 plugin Copy할 파일 지정 가능
상대경로 지정 가능
Copy 제외목록 지정 가능
Custom workspace를 지정해서 복사할 파일의 경로로 이용하게 되면 job이 master에서 실행될지 slave에서 실행될지 모르기 때문에 파일 경로가 모호해지는 문제가 있음 (slave 실행시에도 custom workspace를 이용함)
Master-slave Multi slave config plugin 여러개의 slave를 추가/삭제/설정할 수 있는 plugin 복수의 slave 생성/설정 가능 FS Root가 slave 마다 다른 경우에는 생성 후 개별적으로 설정해야 하는 불편함 있음
Master-slave NodeLabel Parameter Plugin Job 실행시 특정 node나 job을 지정해서 빌드할 수 있도록 지원하는 plugin Node/Label 지정
Post build job도 node와 label로 지정 가능
Parameterized Trigger Plugin 필요
Build job을 여러개로 분리할 경우 수행된 slave에서만 계속되어야 하므로 필요할 수 있음
Master-slave Slave Setup Plugin Slave 연결시 master에 있는 script로 초기 설정 작업을 수행하도록 할 수 있는 plugin Master의 script 경로 저장
Slave로 script 복사
Script 실행
실행될 slave의 label 지정
Slave 연결시에만 수행되는 작업임
Prepare script/setup script는 모두 상대경로를 지정해야 함
매번 초기화 작업이 필요하면 사용할 필요가 있지만 별도의 job으로 구성할 필요도 있음
Monitor Monitoring Jenkins가 사용하는 메모리 등의 상태에 대한 monitoring을 할 수 있는 plugin CPU / memory 사용량
Http session / request 등에 대한 mean time
JavaMelody를 이용한 통계치를 보여주는 기능
http://jenkins_url/monitoring 이라는 permanent link 제공
Monitor Monitoring External Jobs Jenkins 외부에서 실행된 job을 monitoring 할 수 있는 plugin 외부 job monitoring Linux에서 설치해야 하는 별도 package의 위치를 찾을 수 없음
Monitor slave-status Slave가 동작중인지와 메모리 사용량 등을 알려주는 plugin Monitoring 3141 Port를 기본으로 사용함
한 machine에서 여러개의 slave를 사용해서인지 monitoring page 로딩되지 않음
Nagios라는 monitoring tool을 설치해야만 할 수도 있으나 그래야만 한다면 사용하지 않음
Misc. Email Ext Plugin Email 전송시 좀 더 세분화시켜서 email을 선별적으로 발송할 수 있는 plugin Email notification trigger 선택 가능
Contents 지정 가능
수신자 지정 가능
이용 하더라도 별도의 email sender 구현 필요성 있음
Misc. MySQL Database Plugin MySQL driver plugin - Database plugin이 설치되어 있어야 함
Jenkins / plugin 개발용 plugin으로 보임