По версиям
- jenkins -2.58
- pipilene - 2.10
- allure - 2.15
По версиям
Вот это все объясняет) Я использовал, как и все наверно, тот что ставится из репо в jenkins а это 1.5.
Читал что в 2 много чего поменялось. Видимо и pipeline починили
аллюр для pipeline починили только в 2.15
Спутал с JDK
дык ребята, @theshadowco показывает скриптовый пайплайн, а проблемы в декларативном, насколько я понимаю
Это я понял когда увидел целиком скрипт
Ну сорри сразу и не понял
С этим разобрался. Похоже, возникает из-за того, что у меня 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 - просто не работает
allure в декларативном работает. типа такого:
// Генерация отчета Allure
script {
allure([
commandline: 'allure',
includeProperties: false,
jdk: '',
properties: [],
reportBuildPolicy: 'ALWAYS',
results: [[path: 'out/allure']]
])
}