gpt4 book ai didi

jenkins - 在 Windows 上使用 sh 步骤

转载 作者:行者123 更新时间:2023-12-02 06:26:18 25 4
gpt4 key购买 nike

TL;DR 即使 Jenkins 在 Windows 上运行,我也想使用 sh 步骤。我不想使用 bat 步骤,除非您可以向我展示如何轻松地使用 bat 重现我需要完成的操作

我一直在将一些旧的 Jenkins 作业转换为 2.x Pipeline 脚本。我的一项工作使用“通过 SSH 插件发布”来:

  • 将工件发送到远程服务器
  • 在远程服务器上执行一组命令

例如:

Publish over SSH plugin

我想在管道脚本中复制它,所以我做了以下操作:

   stage('Deploy') {
withCredentials([[$class: 'FileBinding', credentialsId: 'bitbucket-key-file', variable: 'SSHKEY']]) {
sh '''
scp -i "$SSHKEY" dsub.tar.gz tprmbbuild@192.168.220.57:dsubdeploy
scp -i "$SSHKEY" deployDsubUi.sh tprmbbuild@192.168.220.57: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

最佳答案

同意“我相信它无法生成外壳”。它正在尝试运行“E:\Jenkins\tools\Git_2.10.1\usr\bin\sh.exe”(使用 Windows 反斜杠语法)。除非我们在上述目录中配置了 shell 可执行文件(sh.exe),否则它将失败。

Powershell(或 Cmd Shell):
如果您要使用批处理文件,则必须安装/配置 3 个二进制文件(ssh、scp、ssh)。其他一切都已到位(我看到您正在使用 ssh 将命令传输到远程计算机。我假设远程服务器是基于 linux/unix 的)。

替代方案:
您可以使用 cygwin 或在 virtualbox 上运行 linux(或任何在 Windows 上模拟 linux 的软件)。但是,只运行 3 个命令可能不值得(如果您计划将来转换/编写更多 shell 脚本,这肯定会很有成效)。

关于jenkins - 在 Windows 上使用 sh 步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com