시간이 10분 이상 걸리는 Batch Job이 있고 이를 Jenkins를 통해서 실행을 하려고 한다. 분명히 Batch가 수행되며 data는 모두 성공적으로 들어갔고 정상적으로 종료된듯 보인다. 하지만 Jenkins Job의 상태는 Unstable이다. SSH: Disconnecting configuration [batch_001] ... ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 213,127 ms] Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE 로그를 꼼꼼히 보니 위와 같은..
Parameterized Trigger를 사용하면 다양한 Job간의 연계작업을 할 수 있다. 전에 살펴본대로 후속 job으로 parameter 값도 넘길 수 있고 후속 job으로 여러가지 job 동시에 실행시키는것도 가능하다. Parameterized Trigger를 사용하면 아주 간단하게 실행시킬 수 있다. bjob이 실패했을때 다음 job을 cjob과 djob이 동시 실행이 되도록 하고 싶다. bjob의 하단에 빌드 후 조치 부분에 Trigger parameterized build on other projects 를 선택한다. 위와 같이 빌드가 실패(Failed)를 했을때 어떤 프로젝트(cjob, djob)를 수행할것인지 명시해주면 된다. 여러가지 job을 동시에 실행시키고 싶은 경우에는 위처럼 , ..
Parameterized Trigger 를 사용하면 후속 작업을 지정 및 수행할 수 있을뿐만이 아니고 현재 job의 param값, 넘기고 싶은 변수값도 넘겨줄 수 있다. 다음은 bjob에서 cjob으로 param값을 넘기는 예제이다. Parameterized Trigger Plugin 설치 방법은 여기를 참고하도록 한다. 일단은 bjob과 cjob에 각각 위와 같이 String Parameter로 값을 넣어준다. 하나씩 해도 되지만 여러개의 param을 보낸다고 가정하고 두개씩 보내는걸로 테스트 환경을 꾸렸다. cjob 설정 및 수행결과 cjob만 단독으로 수행을 한 결과이다. 당연히 위에서 param을 설정한대로 testparam1, testparam2에 대한 출력을 해준다. 설정한대로 cjob par..
Jenkins를 사용하다가 실패한 Job에 대해서는 어떻게 처리를 하는게 가장 좋을까 고민을 하고 있다. 전에 다뤘던 pipeline을 사용해서 실패한 job에 대한 처리를 하는 방법도 있지만 이건 pipeline job을 한셋 더 만들어야 하는 불편함이 있었다. (물론 안만들고도 script에 다 때려 박는 방법도 있지만..) 그러던 중 Parameterized Trigger plugin를 사용하여 아주 간단하게 고민을 해결할 수 있었다. 사용법에 대해서 알아보자. Parameterized Trigger plugin 설치 Jenkins 관리 > 플러그인 관리 > Parameterized Trigger 검색하여 Parameterized Trigger plugin 설치를한다. 설치가 되었다면 사용할 수 있..
Pipeline으로 Job을 실행하고 실행결과에 따라 분기처리를 하고 싶은 경우가 생겼다. 예를 들면 a라는 job이 실행이 되었고 이 job이 성공을 하면 b라는 job을 수행하고 실패를 하면 c라는 job을 수행하도록 하고 싶다. 이렇게 구성을 하는건 여러가지 방법이 존재하지만 내가 좋아하는 if else 구문을 사용해서 구성해보겠다. 대략 이런 그림이다. pipeline project를 하나 만들어서 이를 구성해보자. Pipeline project 생성 새로운 Item 을 눌러서 Pipeline을 지원하는 프로젝트를 생성한다. Pipeline job을 하나 생성하면 위와 같이 groovy 문법을 사용하여 Pipeline Script를 작성할 수 있다. Pipeline Script 작성 node{ s..
엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하는 경우이다. 오류가 발생을 하면 slack이든 email이든 noti를 보내야 하는데 오류가 발생하지 않았다고 판단하여 아무런 후속조치를 하지 않는다. 이럴 경우에 Log Parser 라는 Jenkins plugin을 사용해서 해결할 수 있다. 설치부터 어떻게 사용하는지 알아보자. Jenkins Log Parser 설치 Jenkins 관리 > 플러그인 관리 > 설치 가능 > Log Parser 선택 > 재시작 없이 설치하기 Log Parser Rule 파일 생성 (..
오래된 프로젝트의 배포환경을 구성해달라는 요청을 받았다. ant 로 빌드스크립트를 작성하고 빌드를 수행했는데 다음과 같은 오류메세지가 나오면서 빌드가 정상적으로 되지 않았다. build-project: [javac] Compiling 1237 source files to /app/workspace/TESTPJT/build/classes [javac] /app/workspace/TESTPJT-dev/src/test/pjt/common/web/ConnectorServlet.java:45: error: unmappable character for encoding UTF-8 [javac] build.xml에 build 시 UTF-8로 인코딩을 하도록 다음과 같이 설정은 해놓은 상태이다. 이렇게 하면 대부분의 문..
우리가 아는 jenkins의 익숙한 모습이다. 물론 과거 hudson부터 써온지라 이정도 디자인만 되어도 참 훌륭하다고 생각한다. 하지만 뭔가 개발은 하기 싫고 이런걸 꾸미고 싶은 날도 있다. 어제는 티스토리 코드블럭 꾸미는데 오랫만에 css를 다루니 또 참 재미있었다.. 오늘도 개발하기 싫어서(사실은 맨날...) jenkins에 새로운 테마를 적용해보려한다. 간단하다. Jenkins 관리 > Plugin Manager > 설치 가능 tab > Simple Theme 를 검색 후 설치. 혹시나 폐쇄망이라 설치가 안된다면 다음 글을 참고하자. Jenkins 폐쇄망에서 plugin 설치하기 Jenkins가 설치되어 있는 서버가 외부와의 통신이 되는 환경이면 좋겠지만 그렇지 않은 환경이 여지껏 더 많았다. 따..