我目前正在创建一个简单的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