Мне нужно запустить сложный сценарий bash из моей работы в Jenkins:
steps {
shell(readFileFromWorkspace('./complicated_script.sh'))
}
Вызов работает отлично, проблема в том, что, когда я запускаю начальное задание, задание не выполняется из-за неверный синтаксис скрипта Bash.
Скрипт написан хорошо, и он намного сложнее команд "echo".
Запись сценария между командами shell () работает нормально, но это слишком большой сценарий, чтобы держать его там - ему нужен собственный файл.
Я пытался работать с groovy синтаксисом , чтобы экранировать все специальные символы, и он все еще не работает, те же сообщения об ошибках: неожиданный символ, ожидаемый EOF, но вместо этого ...
Оглядываясь вокруг, чтобы найти примеры сложного сценария bash от Jenkins Job DSL, и я не нашел.
Часть сценария:
#!/bin/bash -x
set -e
SERVER="hostname.example.com"
TLS_SSL_ARRAY=(tlsv1.0 tlsv1.1 tlsv1.2 sslv2 sslv3)
url="https://${SERVER}/api/test"
RESULT_FILE="output_file.txt"
for version in ${TLS_SSL_ARRAY[*]}
do
check_url=$(curl --${version} ${url})
if [ $? -eq 0 ]; then
echo "${version}- Enabled" >> $RESULT_FILE
else
echo "${version} - Disabled" >> $RESULT_FILE
fi
done
sudo -u ${username} scp -o StrictHostKeyChecking=no $RESULT_FILE hostname2.example.com:/tmp/
Как я могу "преобразовать" "этот bash скрипт для bash -читабельно Дженкинса? Как я уже писал ранее, я пробовал много комбинаций, как написано в синтаксической сети groovy -lang.