TL; DRЯ хочу использовать шаг sh
, хотя Jenkins работает в Windows. Я не хочу использовать bat
шаг, если вы не можете показать мне, как легко воспроизвести то, что мне нужно сделать, используя bat
Использование шага sh в Windows
Я преобразования некоторых старых рабочих мест Jenkins к 2.x сценария трубопроводов. Одна из моих работ использует «Опубликовать через SSH плагин» к:
- Отправить артефакты на удаленный сервер
- Exec набор команд на удаленном сервере
Например:
Я хотел повторить это в трубопроводном 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\[email protected]] 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
Это вам подходит? http://www.tikalk.com/devops/shell-jenkins-windows-slave/ –
На выходе не отображается '*** *** dos2unix с помощью sed ''. Возможно, это не сработало в 'scp', иначе может возникнуть ошибка при запуске оболочки. Если вы можете добавить команду 'echo' после каждого scp, это может дать вам подсказку.Также вы можете попытаться запустить пустой сценарий оболочки (только с 'echo'), чтобы сузить проблему. – blackpen
@blackpen на самом деле это мое убеждение, что он не запускает оболочку, поэтому ни одна из команд не имеет шансов на запуск – ThaDon