Рассмотрим следующий конвейер:
pipeline {
/* continuous build pipeline for jenkins */
agent any
environment {
/* initialize vairables for this job */
path_msbuild = 'C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\msbuild.exe'
path_workspace_root = 'C:\\Program Files (x86)\\Jenkins\\workspace\\MyApplication'
path_solutionfile = '%path_workspace_root%\\MyApplication.sln' /* this variable doesn't expand */
databasename = 'elements'
}
stages {
stage ('solution') {
steps {
echo 'building solution'
bat '"%path_msbuild%" "%path_solutionfile%" /p:Configuration=Release'
}
}
}
}
Это задание сборки завершается неудачно, потому что% path_workspace_root% не раскрывается, и я получаю сообщение об ошибке, что искомый файл не найден.
Я попытался объявить строки в двойных кавычках:
pipeline {
/* continuous build pipeline for jenkins */
agent any
environment {
/* initialize vairables for this job */
path_msbuild = 'C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\msbuild.exe'
path_workspace_root = 'C:\\Program Files (x86)\\Jenkins\\workspace\\MyApplication'
path_solutionfile = "%path_workspace_root%\\MyApplication.sln" /* this variable still doesn't expand */
databasename = 'elements'
}
stages {
stage ('solution') {
steps {
echo 'building solution'
bat '"%path_msbuild%" "%path_solutionfile%" /p:Configuration=Release'
}
}
}
}
Я также попытался использовать двойные кавычки и синтаксис с отложенным расширением:
pipeline {
/* continuous build pipeline for jenkins */
agent any
environment {
/* initialize vairables for this job */
path_msbuild = 'C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\msbuild.exe'
path_workspace_root = 'C:\\Program Files (x86)\\Jenkins\\workspace\\MyApplication'
path_solutionfile = "!path_workspace_root!\\MyApplication.sln" /* this variable still doesn't expand */
databasename = 'elements'
}
stages {
stage ('solution') {
steps {
echo 'building solution'
bat '"%path_msbuild%" "%path_solutionfile%" /p:Configuration=Release'
}
}
}
}
- Какой правильный синтаксисзаставить переменную% path_workspace_root% правильно расширяться?
- Я делаю этот "трудный путь" (я новичок в Дженкинс) и есть ли более простой способ выполнить то, что я делаю?Я предполагаю, что по мере увеличения моего конвейера у меня будет ряд переменных среды, которые необходимо установить.