У меня был вызов curl на одном из этапов конвейера, который работал нормально:
stage("deploy") {
when {
environment ignoreCase: true, name: "DEPLOY_TO", value: "staging"
}
steps {
// copy files from dev to server
sh """rsync...
#....
/bin/cp .....
rm -Rf /tmp/${env.SITEID}docs/
# clear the caches
curl -sS -X POST \"http://www.xxxxxxxx.net/myscript.php?api_key=sdfsdfsdfe&site_id=088\""""
Проблема началась, когда я добавил условие if для этого вызова curl в случае сбоя вызова curl:
stage("deploy") {
when {
environment ignoreCase: true, name: "DEPLOY_TO", value: "staging"
}
steps {
// copy files from dev to server
sh """rsync...
#....
/bin/cp .....
rm -Rf /tmp/${env.SITEID}docs/
# clear the caches
if [[ $( curl -sS -X POST \"http://www.xxxxxxxx.net/myscript.php?api_key=sdfsdfsdfe&site_id=088\" | jq -r .debug_info.id_info) != \" cache cleared successfuly\" ]]; then exit 255; fi"""
Ошибка теперь указывает на строку кода rm -Rf /tmp/${env.SITEID}docs/
, но путаница состоит в том, что я даже не изменил эту строку кода!
Полученное сообщение об ошибке -следующее:
ERROR: WorkflowScript: 119: illegal string body character after dollar sign;
solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 119, column 41.
rm -Rf /tmp/${env.SITEID}docs/
Любая помощь приветствуется.