TL;DR Я хочу использовать шаг sh
, хотя Jenkins работает в Windows. Я не хочу использовать шаг bat
, если только вы не покажете мне, как легко воспроизвести то, что мне нужно сделать, используя bat
Я преобразовывал некоторые старые задания Jenkins в скрипт 2.x Pipeline. Одна из моих работ использует «Плагин публикации через SSH» для:
- Отправка артефактов на удаленный сервер
- Выполнить набор команд на удаленном сервере
Например:
Я хотел воспроизвести это в Pipeline Script, поэтому сделал следующее:
stage('Deploy') {
withCredentials([[$class: 'FileBinding', credentialsId: 'bitbucket-key-file', variable: 'SSHKEY']]) {
sh '''
scp -i "$SSHKEY" dsub.tar.gz [email protected]:dsubdeploy
scp -i "$SSHKEY" deployDsubUi.sh [email protected]:dsubdeploy
ssh -i "$SSHKEY" -o StrictHostKeyChecking=no 192.168.220.57 <<- EOF
DEPLOY_DIR=/home/tprmbbuild/dsubdeploy
echo '*** dos2unix using sed'
sed -e 's/\r$//' $DEPLOY_DIR/deployDsubUi.sh > $DEPLOY_DIR/deployDsubUi-new.sh
mv $DEPLOY_DIR/deployDsubUi-new.sh $DEPLOY_DIR/deployDsubUi.sh
chmod 755 $DEPLOY_DIR/deployDsubUi.sh
echo '*** Deploying Dsub UI'
$DEPLOY_DIR/deployDsubUi.sh $DEPLOY_DIR/dsub.tar.gz
EOF'''
}
}
Проблема в том, что я получаю эту трассировку стека при выполнении моей сборки:
[Pipeline] sh
[E:\Jenkins\jenkins_home\workspace\tpr-ereg-ui-deploy@2] Running shell script
1 [main] sh 3588 E:\Jenkins\tools\Git_2.10.1\usr\bin\sh.exe: *** fatal error - add_item ("\??\E:\Jenkins\tools\Git_2.10.1", "/", ...) failed, errno 1
Stack trace:
Frame Function Args
000FFFF9BB0 0018005C24E (0018023F612, 0018021CC39, 000FFFF9BB0, 000FFFF8B30)
000FFFF9BB0 001800464B9 (000FFFFABEE, 000FFFF9BB0, 1D2345683BEC046, 00000000000)
000FFFF9BB0 001800464F2 (000FFFF9BB0, 00000000001, 000FFFF9BB0, 4A5C3A455C3F3F5C)
000FFFF9BB0 001800CAA8B (00000000000, 000FFFFCE00, 001800BA558, 1D234568CAFA549)
000FFFFCC00 00180118745 (00000000000, 00000000000, 001800B2C5E, 00000000000)
000FFFFCCC0 00180046AE5 (00000000000, 00000000000, 00000000000, 00000000000)
00000000000 00180045753 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180045804 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
"*** dos2unix using sed"
. Возможно, произошел сбой вscp
или при запуске оболочки. Если бы вы могли добавить командуecho
после каждого scp, это могло бы дать вам подсказку. Также вы можете попробовать запустить пустой сценарий оболочки (только сecho
), чтобы сузить проблему. - person blackpen   schedule 06.11.2016