क्या पुन: प्रयास ब्लॉक में पैरामीटर का उपयोग करना संभव है? मैं बार-बार दोहराने की कोशिश कर रहा हूं कि एक एनवी वेरिएबल बनाकर पुन: प्रयास करेगा जो एक int है और इसे पुनः प्रयास में पास कर रहा है: retry(env.numberOfTryAttempts) हालांकि पुनर्प्रयास काम नहीं करता है और केवल एक बार नौकरी चलाता है विफलता के रूप में चिह्नित करने से पहले। मैंने नीचे पाइपलाइन शामिल की है।

pipeline {
    agent any
    parameters {
        string(name: 'NUMBER_OF_TRY_ATTEMPTS', defaultValue: '3', trim: true)
    }
    stages {
        stage('Initialize') {
            steps {
                script {
                    env.tryCount = 0
                    env.numberOfTryAttempts = Integer.valueOf(NUMBER_OF_TRY_ATTEMPTS)
                }
            }
        }
        stage('Replicate') {
            options {
                retry(env.numberOfTryAttempts)
            }
            steps {
                script {
                    tryCount = env.tryCount as Integer
                    tryCount++
                    env.tryCount = "${tryCount}"
                    echo "Replicate try number: ${tryCount}"

                    error("Replicate Failed...")
                }
            }
        }
    }
    post {
        failure {
            echo "Replicate Failed after ${tryCount} attempts"
        }
        success {
            echo "Replicate Succeeded after ${tryCount} attempts"
        }
    }
}
1
Isaac Flaum 9 पद 2020, 18:42

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप किसी फ़ंक्शन कॉल में पैरामीटर लपेटते हैं, तो आप फ़ंक्शन को retry पर पास कर सकते हैं। उदाहरण के लिए, यदि आप परिभाषित करते हैं def maxAttempts = Integer.valueOf(NUMBER_OF_TRY_ATTEMPTS) तब आप पुन: प्रयास को फ़ंक्शन को कॉल कर सकते हैं retry(maxAttempts)

1
Arlo 9 पद 2020, 17:07