如何在远程主机上的詹金斯中传递 $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的主要内容,如果未能解决你的问题,请参考以下文章