Значение, возвращаемое из скрипта, не присваивается переменной, объявленной на стадии декларативного конвейера jenkins - PullRequest
0 голосов
/ 21 ноября 2019

Я работаю над добавлением декларативного конвейера jenkins для автоматизации тестирования. На этапе тестового прогона я хочу извлечь неудачные тесты из журнала. Я использую функцию Groovy для извлечения результатов теста. эта функция не является частью конвейера Дженкинса. Это еще один файл сценария. Функция работает нормально, и она строит строку, содержащую детали сбоя. На этапе конвейера я вызываю эту функцию и передаю возвращенную строку другой переменной. Но когда я отображаю значение переменной, он печатает пустую строку.

pipeline {
    agent {
        kubernetes {
            yamlFile 'kubernetesPod.yml'
        }
    }
    environment{
        failure_msg = ""
    }
    stages {
        stage('Run Test') {
            steps {
                container('ansible') {
                    script {
                        def notify = load('src/TestResult.groovy')
                        def result = notify.extractTestResult("${WORKSPACE}/testreport.xml")
                        sh "${result}"
                        if (result != "") {
                            failure_msg = failure_msg + result
                        }
                    }

                }  
            }
        }
    post {
        always {
            script {
                sh 'echo Failure message.............${failure_msg}'
                }
        }
    }
}

здесь 'sh' echo $ {result} '' печатает пустую строку. Но 'extractTestResult ()' возвращает непустую строку.

Также я не могу использовать переменную окружения 'fail_msg' в разделе постов, он возвращает ошибку 'groovy.lang.MissingPropertyException: Неттакое свойство: fault_msg для класса: groovy.lang.Binding '

Может кто-нибудь, пожалуйста, помогите мне с этим?

РЕДАКТИРОВАТЬ:

Даже после того, как яисправил интерполяцию строк, я получал ту же ошибку. Это потому, что Дженкинс не позволяет использовать 'sh' внутри контейнера докера. на доске объявлений jenkins

есть открытая ошибка
...