获取Jenkins Workspace文件



我目前正在创建一个简单的Jenkins插件。我正试图找到一种方法来访问Jenkins拥有的工作区中的文件。

例如,如果我让Jenkins提取我的repo,它会将所有文件下载到计算机上的工作区文件夹中。我该如何找到这个确切的位置?

我正在尝试压缩文件,并能够将它们发送到API端点。谢谢大家

如果开发插件,请参阅javadoc。

在继续之前,询问是否";一个或多个插件,以满足您的需求"?例如:HTTP Post(另外,还有很多"zip"的方法(

尽管如此,哈德森。FilePath可能符合您的用例。

正如Jesse Glick所解释的:

只需使用FilePath newFile = build.getWorkspace().child(fileOnDiskPath);无条件地。您通常会传递一个相对路径名;请参阅:https://javadoc.jenkins.io/hudson/FilePath.html#child-java.lang.String-

如果您想进行压缩:FilePath.TarCompression

引用管道中的工作区?org.jenkinsci.plugins.workflow.actions.WorkspaceAction

有一个名为WORKSPACE的env var包含该位置。例如,对于文件夹沙盒中名为banana的作业

stages {
stage('Hello') {
steps {
echo "$WORKSPACE"
sh "ls $WORKSPACE"
sh "touch banana.txt"
sh "ls $WORKSPACE"
}
}
}

给出输出

[Pipeline] { (Hello)
[Pipeline] echo
/tmp/workspace/sandbox/banana
[Pipeline] sh
+ ls /tmp/workspace/sandbox/banana
[Pipeline] sh
+ touch banana.txt
[Pipeline] sh
+ ls /tmp/workspace/sandbox/banana
banana.txt

最新更新