无法从 Jenkins 上的 linux 服务器访问目录

Can't access directories from my linux server on Jenkins

我在我的 linux 服务器上安装了 Jenkins,如果我从我的管道脚本在我的 Jenkins 工作区中创建一个随机目录:

sh 'mkdir test'

然后我通过 PuTTY 连接到我的服务器并转到我的 jenkins 工作区位置并检查那里有什么我可以看到我从我的 jenkins 管道构建创建的“测试”目录:

user@ci:/var/lib/jenkins/workspace$ cd build_test
user@ci:/var/lib/jenkins/workspace/build_test$ ls
test

问题是当我在 Jenkins 中编写 shell 命令在我的服务器中导航并使用“ls”检查文件时我没有看到任何东西,例如如果我 运行 这些命令:

cd /
ls

在 运行 构建我的 Jenkins 之后,我在控制台上什么也没有得到,但是我在 PuTTY 上 运行 得到了这个结果:

bin   data  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
boot  dev   home  lib64  media       opt  root  sbin  sys  usr

我唯一能看到的目录是我的 Jenkins 工作区 (/var/lib/jenkins/workspace/build_test) 中的目录,无论是来自 Jenkins 还是 PuTTY,我都可以在其中看到我的“测试”目录。

我是 Jenkins 的新手,所以我应该怎么做才能从 Jenkins 访问我服务器的所有目录?

感谢您的帮助。

我来猜一猜。我认为这里的问题不是 Jenkins 无法看到文件系统的其余部分。相反,它是 Jenkins 工作的方式,其中每个命令 运行 分别在工作区中。

因此,如果您 运行 cd / 这会将您带到 / 仅用于此命令 。一旦你 运行 ls,它将恢复到你的 Jenkins 工作区和 运行 ls 那里。

要解决此问题,您可以 运行 在同一行 cd / && ls 或使用 dir:

dir('/') {
    sh('ls')
}