Я работаю над добавлением декларативного конвейера 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
есть открытая ошибка