티스토리 뷰

일전에 Spring Batch가 수행을 하다가 실패를 해도 Jenkins에서는 SUCCESS를 찍는 문제가 있다고 글을 쓴적이 있다. 

 

 

Jenkins Log Parser 사용해서 Application 오류 처리하기

엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하

oingdaddy.tistory.com

이런 글인데 이것은 어플리케이션을 수행하고 성공이든 실패든 Jenkins의 Job은 SUCCESS로 출력을 하는데 이 과정의 로그를 분석하여 Jenkins의 Job의 상태를 변경해주는 방법이었다. 어떻게 보면 원칙적인 방법이 아니라 꼼수였다. 

그리고 위와 같은 문제는 exitCode를 사용해서 간단히 해결할 수 있었다. 

 

BatchApplication.java

public static void main(String[] args) {
    int exitCode = 0;
		
    try {
        exitCode = SpringApplication.exit(SpringApplication.run(BootBatchApplication.class, args));
    } catch (Exception e) {
        exitCode = 5;
    } finally {
        System.exit(exitCode);
    }
}

 이런 식으로 batch application 을 수행하며 일어나는 모든 오류는 exitCode가 5가 된다. exitCode가 5이면 Jenkins에서도 이를 SUCCESS가 아닌 UNSTABLE 상태로 인식하게 된다. 

 

jenkins job UNSTABLE

Jenkins의 Job이 UNSTABLE로 끝났기 때문에 후속 작업으로 다양한 액션을 취할수 있게 되었다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
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