Рассмотрим следующий конвейер:
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%?
- Делаю ли я это «сложным путем» (я новичок в Jenkins) и есть ли более простой способ выполнить то, что я делаю? Я предполагаю, что по мере того, как мой конвейер станет больше, у меня будет ряд этих переменных среды, которые необходимо установить.