Я использую приведенный ниже скрипт Apache Groovy в конвейере jenkins для развертывания моего артефакта (dev.ear) на сервере.Я встроил сценарий оболочки в Groovy для безопасного копирования dev.ear с подчиненного jenkins на целевой сервер (сервер Unix).
node('linux') {
stage('Checkout/Download/Deploy') {
timeout(time: 30, unit: 'MINUTES') {
def ziptmp = '.ziptmp'
output = sh returnStdout: true, script:"/bin/rm -rf ${ziptmp}; /bin/mkdir ${ziptmp}; cd ${ziptmp}; /usr/bin/unzip -qq ${tempdir}/${artifactFilename}; ls -ltr; echo *;
if [ -e dev.ear ]
then
scp dev.ear lsfi@${serverName57}:/apps/wls/dev/applications;
echo "COPIED DEV ARTIFACT TO SERVER"
else
echo "DEPLOYMENT PACKAGE DOESNT CONTAIN DEV ARTIFACT"
fi"
echo "RESULT::: ${output}"
}
}
}
При запуске задания Jenkins
WorkflowScript: 54: expecting anything but ''\n''; got it anyway @ line 54, column 171.
ctFilename}; ls -ltr; echo *;
появляется следующая ошибка:
Я удалил новые строки в сценарии оболочки и обновил код, как показано ниже:
def ziptmp = '.ziptmp'
output = sh returnStdout: true, script:"/bin/rm -rf ${ziptmp}; /bin/mkdir ${ziptmp}; cd ${ziptmp}; /usr/bin/unzip -qq ${tempdir}/${artifactFilename}; ls -ltr; echo *; if [ -e dev.ear ] then scp dev.ear lsfi@${serverName57}:/apps/wls/dev/applications; fi;"
echo "RESULT::: ${output}"
Но я получаю следующую ошибку:
line 2: syntax error near unexpected token `fi'
Как устранить эту ошибку.