$PWD和$WORKSPACE在Jenkins中是不同的
我的作业有一个构建步骤build-executeshell,我只在其中输入了以下两个命令:$PWD和$WORKSPACE在Jenkins中是不同的,jenkins,environment-variables,jenkins-cli,Jenkins,Environment Variables,Jenkins Cli,我的作业有一个构建步骤build-executeshell,我只在其中输入了以下两个命令: echo $WORKSPACE echo $PWD 结果让我很困惑: + echo /home/jenkins/workspace/tradefed/test_deployment /home/jenkins/workspace/tradefed/test_deployment + echo /media/d/workspace/tradefed/test_deployment /media/d/wor
echo $WORKSPACE
echo $PWD
结果让我很困惑:
+ echo /home/jenkins/workspace/tradefed/test_deployment
/home/jenkins/workspace/tradefed/test_deployment
+ echo /media/d/workspace/tradefed/test_deployment
/media/d/workspace/tradefed/test_deployment
为什么$WORKSPACE
和$PWD
的值不同
2018年3月2019日更新:
正如@PavelAnikhouski所提到的,$WORKSPACE
是相对于您的$JENKINS_HOME
设置的,$PWD
是操作系统环境变量,指文件系统中的当前工作目录,因此它们不应相同
但我仍然对
$WORKSPACE
感到困惑,为什么Jenkins有$WORKSPACE
,但在另一个工作目录中执行shell?为什么它们应该是相同的?一个变量是“作为工作区分配给构建的目录的绝对路径”,第二个变量是您的Linux操作系统工作目录您介意解释更多细节吗?构建的工作区
和我的Linux工作目录
之间有什么区别?您可以看到Jenkins env变量列表,它们由Jenkins服务本身管理$WORKSPACE是相对于$JENKINS_HOME(安装JENKINS的位置)设置的,$PWD是OS环境变量,指文件系统中的当前工作目录。我不认为这些价值观是正确的same@PavelAnikhouski我明白了,谢谢。但我仍然对$WORKSPACE
感到困惑。为什么Jenkins需要$WORKSPACE
,但在另一个工作目录中执行shell?事实上,它们对我来说是一样的,至少最初是这样。我希望shell从项目的工作区目录开始。您可以通过制作cd/some/other/place
来改变这一点,但作为默认设置,这是有意义的。脚本中是否有其他内容正在更改您所在的目录?