如何在远程主机上的詹金斯中传递 $BUILD_NUMBER

Posted

技术标签:

【中文标题】如何在远程主机上的詹金斯中传递 $BUILD_NUMBER【英文标题】:How to pass $BUILD_NUMBER in jenkins on remote host 【发布时间】:2011-12-01 20:34:01 【问题描述】:

我正在尝试在远程主机上执行 shell 脚本,但我不确定如何传递 Jenkins 环境变量,例如:BUILD_NUMBER

使用 ssh 在远程主机上执行 shell 脚本 SSH 站点

有人可以告诉我怎么做吗? 谢谢 普拉文

【问题讨论】:

【参考方案1】:

当您在构建步骤中填写命令字段时,只需将 $BUILD_NUMBER 作为参数传递给您的远程 shell 脚本。例如:

远程shell脚本内容:

echo "Build number is $1"

命令字段内容:

"/path/to/myshellscript $BUILD_NUMBER"

【讨论】:

我试过这个已经没有用了,下面的更多信息 ./deploy.sh --buildnumber $BUILD_NUMBER 不起作用,但如果我通过 ./deploy.sh --buildnumber 10 它可以工作并执行在远程主机中,基本上 $BUILD_NUMBER 不在远程 shell 中工作,但它在同一个 shell 中工作。知道吗? 对此感到抱歉 - SSH 构建步骤似乎以一种奇怪的方式处理引号。用双引号将要执行的命令括起来应该可以工作(这会在远程主机上执行命令之前在本地评估任何环境变量),但是詹金斯似乎以某种方式吞下了引号,我不知道如何得到它工作。我会继续寻找。 没问题,唯一的办法就是在当前shell中转一下shh到框,然后运行带参数的命令。【参考方案2】:

以防万一有人仍然对这个问题感到困惑,因为 SSH Exec 命令仍然以相同的未记录方式运行,您需要引用您希望传递给命令的参数,例如:

/path/to/script "$BUILD_NUMBER" "$GIT_BRANCH"

【讨论】:

【参考方案3】:

使用 SSH 插件在远程主机上执行 ssh,请执行以下操作:

export BUILD_NUMBER
/path/to/myshellscript

【讨论】:

以上是关于如何在远程主机上的詹金斯中传递 $BUILD_NUMBER的主要内容,如果未能解决你的问题,请参考以下文章

如何为詹金斯参数化远程触发插件设置远程主机

如何在詹金斯作业中实时显示在远程服务器上运行的日志

读取远程主机上的文件

詹金斯 - 在工作之间传递变量?

Webdriver 在 45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1

如何将 X11 转发到运行在远程 linux 主机上的虚拟机?