ฉันจะตรวจจับข้อผิดพลาดไปป์ไลน์ใน Jenkins ได้อย่างไร

ฉันมีสคริปต์ไปป์ไลน์ของ Jenkins ซึ่งส่วนใหญ่ทำงานได้ดีและฉันล้อมรอบสิ่งต่าง ๆ ส่วนใหญ่ที่จะทำให้เกิดข้อผิดพลาดร้ายแรงด้วยการลองจับ อย่างไรก็ตาม ในบางครั้งสิ่งที่ไม่คาดคิดก็เกิดขึ้น และฉันต้องการให้มีสิ่งที่จับได้ทั้งหมดอย่างปลอดภัยเพื่อทำการรายงานขั้นสุดท้ายก่อนที่จะล้มเหลวในการสร้าง

ไม่มี 'สเตจ' เริ่มต้นสุดท้ายที่ฉันสามารถกำหนดได้ว่าจะทำงานทุกครั้งที่ตรวจไม่พบข้อผิดพลาดหรือไม่


person S.Richmond    schedule 29.12.2016    source แหล่งที่มา
comment
คุณสามารถสรุปได้ใน try {} finally {}   -  person Rik    schedule 03.01.2017


คำตอบ (2)


คุณสามารถทำได้โดยรวมขั้นตอนการ build ทั้งหมดของคุณไว้ในบล็อก try/catch/finally {} ขนาดใหญ่ ตัวอย่างเช่น:

node('yournode') {
    try {
        stage('stage1') {
            // build steps here...
        }
        stage('stage2') {
            // ....
        }
    } catch (e) {
        // error handling, if needed
        // throw the exception to jenkins
        throw e
    } finally {
        // some common final reporting in all cases (success or failure)
    }
}
person Mohamed O. Abdallah    schedule 04.01.2017
comment
โซลูชันนี้จะใช้ได้กับแนวทางการประกาศหรือไม่ - person Kanagavelu Sugumar; 21.11.2019
comment
@KanagaveluSugumar สำหรับไปป์ไลน์ที่ประกาศ ฉันเชื่อว่าคำตอบของ ipper ด้านล่างเป็นวิธีแก้ปัญหาที่ถูกต้อง - person Mohamed O. Abdallah; 26.11.2019

แม้ว่าจะได้รับการตอบไปแล้วสำหรับไปป์ไลน์แบบมีสคริปต์ ฉันอยากจะชี้ให้เห็นว่าสำหรับไปป์ไลน์ที่ ประกาศ จะทำได้ด้วย ส่วนโพสต์:

pipeline {
    agent any
    stages {
        stage('No-op') {
            steps {
                sh 'ls'
            }
        }
    }
    post {
        always {
            echo 'One way or another, I have finished'
            deleteDir() /* clean up our workspace */
        }
        success {
            echo 'I succeeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
        changed {
            echo 'Things were different before...'
        }
    }
}

แต่ละด่านยังสามารถมีส่วนของตัวเองได้เมื่อจำเป็น

person ipper    schedule 10.11.2017
comment
ขั้นตอนการโพสต์จะดำเนินการหรือไม่หากเกิดการหมดเวลา? - person Siddharth; 31.03.2020