[Jenkins] 오류가 발생해도 후속 Stage를 실행하는 방법

6706 단어 Jenkins
Stage를 복수 정의하고 있는 상태에서, 에러 발생 후의 Stage도 실행하는 방법의 메모.

검증 버전


  • Jenkins 2.222.1

  • 오류가 발생한 Stage에서 Job이 종료되는 쓰기


    pipeline {
        agent any 
        stages {
            stage('Test AP1') { 
                steps {
                    echo "test ap 1"
                }
            }
            stage('Test AP2') { 
                steps {
                    echo "test ap 2"
                }
            }
            stage('Test AP3') { 
                steps {
                    echo "test ap 3"
                }
            }
        }
    }
    

    처럼 쓰면, 만일 2번째 Stage에서 에러가 나오면 3번째 Stage가 실행되지 않는다.



    에러가 발생해도 후속 Stage를 실행하는 쓰는 방법(에러 개소를 모른다・・・)


    pipeline {
        agent any 
        stages {
            stage('Test AP1') { 
                steps {
                    catchError {
                        echo "test ap 1"
                    }
                }
            }
            stage('Test AP2') { 
                steps {
                    catchError {
                        echo "test ap 2"
                        error "error test!!" // エラーを起こすためのダミーコード
                    }
                }
            }
            stage('Test AP3') { 
                steps {
                    catchError {
                        echo "test ap 3"
                    }
                }
            }
        }
    }
    

    라는 느낌으로 하면( catchError 구로 둘러싸면), 후속 Stage를 실행한 다음에 빌드가 에러가 되어 주지만・・・어디의 Stage에서 에러가 나왔는지 확실히 모르는・・.



    에러가 발생해도 후속 Stage를 실행하는 쓰는 방법(에러 개소도 알 수 있다!!)


    pipeline {
        agent any 
        stages {
            stage('Test AP1') { 
                steps {
                    catchError(stageResult:'FAILURE') {
                        echo "test ap 1"
                    }
                }
            }
            stage('Test AP2') { 
                steps {
                    catchError(stageResult:'FAILURE') {
                        echo "test ap 2"
                        error "error test!!" // エラーを起こすためのダミーコード
                    }
                }
            }
            stage('Test AP3') { 
                steps {
                    catchError(stageResult:'FAILURE') {
                        echo "test ap 3"
                    }
                }
            }
        }
    }
    

    라는 느낌으로 stageResult 옵션에 FAILURE를 지정하면 후속 Stage를 실행한 후 에러가 된 Stage도 알게 된다.



    마지막으로



    뭐~일단 하고 싶은 일은 할 수 있었지만, 개별적으로. ?

    좋은 웹페이지 즐겨찾기