我们知道有一个名为 JENKINS_HOME 的环境变量,所以我们可以在任何地方使用它作为 $JENKINS_HOME。但是现在当我在从节点上运行项目时,我需要使用从节点上jenkins的主目录(定义从节点时命名为“远程FS根”)作为变量。而且我发现 $JENKINS_HOME 始终是主节点上 jenkins 的主目录,即使我在从节点上运行项目。
任何人都可以帮忙吗?谢谢!
我们知道有一个名为 JENKINS_HOME 的环境变量,所以我们可以在任何地方使用它作为 $JENKINS_HOME。但是现在当我在从节点上运行项目时,我需要使用从节点上jenkins的主目录(定义从节点时命名为“远程FS根”)作为变量。而且我发现 $JENKINS_HOME 始终是主节点上 jenkins 的主目录,即使我在从节点上运行项目。
任何人都可以帮忙吗?谢谢!
老问题,但似乎从未回答
变量并没有直接暴露在作业的环境中,但是你可以弄清楚...
默认情况下(即:您没有设置自定义工作区),
WORKSPACE=<RemoteFS>/<JOB_NAME>
并JOB_NAME
包括文件夹(如果您使用它们)。
即:WORKSPACE=/path/to/remoteFSroot/myfolder/jobname
和JOB_NAME=myfolder/jobname
您可以从那里进行操作。但是,不需要将数据存储在 remoteFS 根目录中,这甚至可能是个坏主意,因为您应该能够删除所有不会影响数据的工作区。只需将其存储在另一个目录中(甚至是所有从属服务器共享的 NFS)并使用完整路径进行引用。
如果您看到JENKINS_HOME
环境变量,它只是您用于启动 Jenkins master 的脚本的副作用。你不能相信它总是可用的。
也许你可以解释为什么你认为你需要知道从属主目录?
使用 Jenkins 管道插件,我检索了运行作业的从节点的远程根目录
run.getEnvironment(listener).get("BASE")