Mik*_*peg 3 jenkins jenkins-pipeline
我正在尝试编写一个管道詹金斯作业,该作业循环遍历特定目录的子文件夹并启动某些内容。问题是访问文件系统。由于某种原因,它似乎根本不读取文件系统,也不读取它自己的工作区。
这是我正在使用的片段
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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该文件夹当然存在于服务器上,但运行总是返回第二个回显。
更新: 我发现以这种方式给出的所有 gradle/java 指令都不是针对节点的,而是在主节点上运行的。这就是我找不到目录的原因。所以我完全误解了管道是如何工作的。
说的是……我知道如何检索它吗?例如,有没有办法从 shell 步骤设置 gradle 属性?
谢谢,米歇尔
这就是我解决这个问题的方法,运行一个返回输出的 shell
def subfolders = sh(returnStdout: true, script: 'ls -d RuntimeBuild/*').trim().split(System.getProperty("line.separator"))
Run Code Online (Sandbox Code Playgroud)
然后我就可以使用目录名称循环列表并操作它们。
对于 Windows 来说可能会变成:
def subfolders = bat(script: '@dir /B RuntimeBuild', returnStdout: true).split(/\n\r/)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20453 次 |
| 最近记录: |