Pipeline vs Задачи со свободной конфигурацией

По версиям

  • jenkins -2.58
  • pipilene - 2.10
  • allure - 2.15

Вот это все объясняет) Я использовал, как и все наверно, тот что ставится из репо в jenkins а это 1.5.
Читал что в 2 много чего поменялось. Видимо и pipeline починили

хммм

аллюр для pipeline починили только в 2.15

Спутал с JDK

дык ребята, @theshadowco показывает скриптовый пайплайн, а проблемы в декларативном, насколько я понимаю :slight_smile:

Это я понял когда увидел целиком скрипт

Ну сорри :slight_smile: сразу и не понял

С этим разобрался. Похоже, возникает из-за того, что у меня Jenkins установлен в папке “\Program files (x86)” с пробелом в имени.
Собственно, нужно поправить “C:\Program Files (x86)\Jenkins\tools\ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation\allure\bin\allure.bat”, в 79 строке обернуть %ALLURE_HOME% в кавычки, должно быть так:

if not exist "%ALLURE_HOME%\bin\allure.bat" (
    echo Invalid ALLURE_HOME: "%ALLURE_HOME%" is not a valid allure commandline directory >&2
    goto error
)

И мой Pipeline script:

node {
   stage('Создание пустой базы и обновление из хранилища') {
      env.RUNNER_V8VERSION='8.3.10.2168'
      env.RUNNER_IBNAME="/F${env.WORKSPACE}/build/ib"
      env.RUNNER_PATHXUNIT="C:/1C/xUnitFor1C/xddTestRunner.epf"
      
      cmd("runner init-dev --storage --storage-name tcp://storage-srv:4542/main --storage-user Мороз")
   }
   stage('Обновление информационной базы') {
      cmd('runner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute C:/1C/epf/ЗакрытьПредприятие.epf')
      def ib_update_error_file = "${env.WORKSPACE}/ib_update_error.txt"
      if (fileExists(ib_update_error_file)) {
          def errorText = readFile encoding: 'UTF-8', file: ib_update_error_file
          echo errorText
          currentBuild.result = 'FAILURE'
          return
      }
   }
   stage('Проверка синтаксиса') {
      env.RUNNER_DBUSER='Администратор'
      cmd('runner syntax-check --junitpath build/out/syntax-check.xml --mode -ThinClient -Server -ExternalConnection')
      step([$class: 'JUnitResultArchiver', testResults: '**/syntax-check.xml'])
   }
   stage('Дымовые тесты') {
      cmd('runner xunit C:/1C/xUnitFor1C/Tests/Smoke/ --reportsxunit ГенераторОтчетаJUnitXML{build/out/smoke-junit.xml};ГенераторОтчетаAllureXML{build/out/smoke-testsuite.xml}')
      step([$class: 'JUnitResultArchiver', testResults: '**/smoke-junit.xml'])
   }
   stage('Отчет Allure') {    
      allure([includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: 'build/out']]])
   }
}
def cmd(command) {
    // при запуске Jenkins не в режиме UTF-8 нужно написать chcp 1251 вместо chcp 65001
    if (isUnix()) { sh "${command}" } else { bat "chcp 65001\n${command}"}
}

со scripted pipeline единственная проблема была - в пробелах в путях. а в declarative pipeline - просто не работает :smiley:

allure в декларативном работает. типа такого:

                    // Генерация отчета Allure
                    script {
                        allure([
                                commandline: 'allure',
                                includeProperties: false,
                                jdk: '',
                                properties: [],
                                reportBuildPolicy: 'ALWAYS',
                                results: [[path: 'out/allure']]
                        ])
                    }

5 Симпатий