Исходя из моего вопроса How to trigger parameterized build on successful build in Jenkins?Как запустить работу вниз по течению на основе параметра в трубопроводе Дженкинса?
Я хотел бы ВЫЗОВ нисходящий проект, но только если логический параметр имеет значение истина. Это возможно? Мой трубопровод выглядит следующим образом:
node {
try {
echo "ConfigFilePath: ${ConfigFilePath}"
echo "Delete VM on Successful Build: ${DeleteOnSuccess}"
stage('checkout') {
deleteDir()
git 'http://my.git.lab/repo.git'
}
stage('deploy') {
bat 'powershell -nologo -file BuildMyVM.ps1 -ConfigFilePath "%ConfigFilePath%" -Verbose'
}
}
stage('test') {
// functional tests go here
}
}
catch (e) {
// exception code
} finally {
// finally code
}
} //node
stage('delete') {
if(DeleteOnSuccess)
{
bat 'SET /p VM_NAME=<DeleteVM.txt'
echo "Deleting VM_NAME: %VM_NAME%"
def job = build job: 'remove-vm', parameters: [[$class: 'StringParameterValue', name: 'VM_NAME', value: '${VM_NAME}']]
}
}
Я получаю эту ошибку на этапе удаления
Required context class hudson.FilePath is missing. Perhaps you forgot to surround the code with a step that provides this, such as: node
Если я обернуть выше в узле, то значения параметров будут потеряны. Если я поставлю этап удаления в основной узел, я возьму двух исполнителей, которых я пытаюсь избежать, потому что это приведет к некоторым условиям взаимоблокировки.
Ошибки вы получите о 'bat' вы пытаетесь запустить. Для этого требуется узел (или фактически среда). Поэтому, в зависимости от того, как вы вызываете свою сборку в первую очередь, вам нужно окружить ее с помощью 'node {...}', или просто поместить ее в блок 'node'. Если вы хотите только вызвать его и не дожидаться сборки, вы можете добавить 'wait: false' в команду' build'. – Rik
ОК, если я удаляю строки 'bat' и' echo', задание на этапе 'delete' выполняет ли параметр проекта' DeleteOnSuccess' равным true или false. Любые идеи почему? –
Возможно, это строка. Не логическое? – Rik