Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

два Allure репорта накладываются друг на друга в pipeline Jenkins

jenkins
reporting
allure
Теги: #<Tag:0x00007fedbbcc2008> #<Tag:0x00007fedbbcc1e78> #<Tag:0x00007fedbbcc1b80>

(O Kaluzhyn) #1

Такая ситуация, на работе есть pipeline который работает по принципу:
“деплой на тест -> тесты на тесте(с репортом) -> деплой на проде -> тесты на проде(с репортом)”
как видим из пути, должно генерироваться 2 репорта, каждый со своими результатами.
у меня вышло это прикрепить вставив эти строки в нужных местах:
allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/testServer/target/allure-results']]])
и
allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/prodServer/target/allure-results']]])

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

прилагаю полный код для простоты понимания:

stage('Deploy on test'){
    build 'Deploy test'
}
try{
    echo 'its test on test server'
    stage('test on test') {
        node('forTests') {
            def e2e = build job:'test Selenium Regression'
            result = e2e.result
            stage('allure report on test serv if success') {
                allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/test Selenium Regression'/target/allure-results']]])
            }
        }
   }
}catch(e){
    echo 'its report on test server if failed'
    stage('allure'){
        node('forTests') {
            def al = allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/test Selenium Regression'/target/allure-results']]])
            result = "FAILURE"
            al.result = "FAILURE"
        }
    }
}


if(result.equals("SUCCESS")){
    stage('Deploy on prod'){
        build 'Deploy prod'
    }
try{
    echo 'its test on prod server'
    stage('test on prod') {
        node('forTests') {
            def e2e = build job: 'prod Selenium Regression'
            result = e2e.result
            stage('allure report on prod serv if success') {
                allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/prod Selenium Regression/target/allure-results']]])
            }
        }
    }
}catch(e){
    echo 'its report on prod server if failed'
    stage('allure'){
        node('forTests') {
            allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: '/home/developer/workspace/prod Selenium Regression/target/allure-results/target/allure-results']]])
            result = "FAILURE"
            al.result = "FAILURE"
        }
    }
  }
}