Лучший способ отправить результаты XML из скручивания - PullRequest
0 голосов
/ 03 июня 2019

у нас есть конвейер Jenkins, который отправляет запрос sh 'curl' в api / приложение, чтобы выполнить специальные тесты для нас, и мы отказываем / пропускаем сборку в зависимости от результатов.

Что я хочу сделать: это проанализировать информацию, которую мы получаем из curl (XML-документ), и отправить эти уведомления через Slack.

То, что я до сих пор делал, это то, что, анализируя XML-документ, я могу печатать результаты локально, но когда я пытаюсь отправить этот результат на провал, я получаю ошибку: я предполагаю, что это потому, что я сохранил свой результаты в виде массива, и когда я пытаюсь отправить информацию, чтобы ослабить его не может ссылаться на переменную.

Мой вопрос: как мы должны отправлять результаты XML в Slack и как мы можем правильно проанализировать файл XML и отправить его в Slack?

Мой фрагмент кода:

            List <String> someString = new ArrayList<String>()
            parsed = new XmlSlurper().parse("${workspace}/tmp/TESTS-results.xml")


            parsed.testsuite.testcase.each { device ->
            someString.add(device.@name)
            someString.add(device.@time)
            someString.add(device)
            println deviceArr
            println deviceArr.getClass()
            }      
                parsed= XmlUtil.serialize(parsed)
                return deviceArr
            }
    in field groovy.lang.GString.values
    in object org.codehaus.groovy.runtime.GStringImpl@40198fcc
    in field groovy.lang.Closure.delegate
    in object org.jenkinsci.plugins.workflow.cps.CpsClosure2@4a4ae500
    in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5dd0e25c
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5dd0e25c
Caused: java.io.NotSerializableException: groovy.util.slurpersupport.Attributes

...