gpt4 book ai didi

jenkins - 如何读取 Jenkins 管道中的子文件夹

转载 作者:行者123 更新时间:2023-12-02 13:45:39 36 4
gpt4 key购买 nike

我正在尝试编写一个管道 Jenkins 作业,该作业循环遍历特定目录的子文件夹并启动某些内容。问题是访问文件系统。由于某种原因,它似乎根本不读取文件系统,也不读取它自己的工作区。

这是我正在使用的代码片段

node ('label') {
workspacePath = '/opt/installersWS'
ws(workspacePath){
stage ("test"){
...some stuff...
runtimeBuildDir = new File(workspacePath + "/components")
echo runtimeBuildDir.getPath()
if (runtimeBuildDir.exists()){
echo "search for subfolders"
} else {
echo "main folder not existing"
}

}
}
}

该文件夹当然存在于服务器上,但运行总是返回第二个回显。

更新:我发现以这种方式给出的所有 gradle/java 指令都不是针对节点的,而是在主节点上运行的。这就是我找不到目录的原因。所以我完全误解了管道是如何工作的。

说的是……我知道如何检索它吗?例如,有没有办法从 shell 步骤设置 gradle 属性?

谢谢,米歇尔

最佳答案

这是我解决这个问题的方法,运行一个返回输出的 shell

def subfolders = sh(returnStdout: true, script: 'ls -d RuntimeBuild/*').trim().split(System.getProperty("line.separator"))

然后我就可以使用目录名称循环列表并操作它们。

对于 Windows 来说可能会变成:

def subfolders = bat(script: '@dir /B RuntimeBuild', returnStdout: true).split(/\n\r/)

关于jenkins - 如何读取 Jenkins 管道中的子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620409/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com