gpt4 book ai didi

jenkins - FileNameFinder().getFileNames 在一个 Jenkins 节点上失败

转载 作者:行者123 更新时间:2023-12-04 17:54:09 26 4
gpt4 key购买 nike

使用 groovy 从 jenkins 工作区获取文件列表在一个节点上失败,但在另一个节点上有效。这是管道中的代码:

 def pd = pwd()
bat "dir $pd"
def bat_files = new FileNameFinder().getFileNames(pd, 'G*.bat')

输出:

C:\Jenkins\Slave\workspace\TestFolder\CodeTestPipe>dir C:\Jenkins\Slave\workspace\TestFolder\CodeTestPipe 
Volume in drive C is OSDisk
Volume Serial Number is AAA1-73FA

Directory of C:\Jenkins\Slave\workspace\TestFolder\CodeTestPipe

01/23/2017 05:34 PM <DIR> .
01/23/2017 05:34 PM <DIR> ..
01/23/2017 05:34 PM 4 GOL.bat
1 File(s) 4 bytes
2 Dir(s) 134,906,617,856 bytes free
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
C:\Jenkins\Slave\workspace\TestFolder\CodeTestPipe does not exist.
at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:483)
at org.codehaus.groovy.ant.FileIterator.setNextObject(FileIterator.java:119)
at org.codehaus.groovy.ant.FileIterator.hasNext(FileIterator.java:81)
at groovy.util.FileNameFinder.getFileNames(FileNameFinder.groovy:44)
at groovy.util.FileNameFinder$getFileNames.callCurrent(Unknown Source)
at groovy.util.FileNameFinder.getFileNames(FileNameFinder.groovy:31)
at

最佳答案

管道在 Jenkins 主机上执行,只有通过支持远程处理的 API 的魔力,事情才会在选定节点上发生。所以 File 以及所有使用 File 的东西都不起作用,而且永远不会起作用:它总是在 master 上执行。

来源:https://groups.google.com/forum/#!topic/jenkinsci-users/yBiYbwWjg-I

我能够通过在 bat 命令中使用 dir 来获取文件:

def bat_out = bat( returnStdout: true, script: '@echo off & dir /b G*.bat').trim()

关于jenkins - FileNameFinder().getFileNames 在一个 Jenkins 节点上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833308/

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