Joe*_*g S 54 jenkins jenkins-workflow jenkins-pipeline
我目前正在对Jenkins Pipeline插件(以前称为Workflow插件)进行一些评估.阅读文档我发现我目前无法使用env.WORKSPACE以下方法检索工作区路径
:
工作流脚本中当前不可使用以下变量:
NODE_LABELS
工作区
特定于SCM的变量,例如SVN_REVISION
有没有其他方法如何获得当前工作区的绝对路径?我需要运行一些测试,然后获取一些参数(一些可执行文件的绝对路径).我已经尝试new File("").absolutePath()在一个@NonCPS部分内部使用,但看起来非CPS的东西总是在主服务器上执行.
有没有人知道如何在不运行某些批处理脚本的情况下获取此路径,该脚本将路径存储到某个文件中,以后可以再次读入该文件?
Ale*_*eks 48
注意:此解决方案仅在从属服务器具有与主服务器相同的目录结构时才有效.pwd()由于JENKINS-33511,将返回主服务器上的工作空间目录.
我曾经使用pwd()管道插件的功能来做到这一点.所以,如果你需要在奴隶上获得一个工作区,你可能会这样做:
node('label'){
//now you are on slave labeled with 'label'
def workspace = pwd()
//${workspace} will now contain an absolute path to job workspace on slave
}
Run Code Online (Sandbox Code Playgroud)
Jan*_*bry 32
自从Pipeline Nodes and Processes Plugin 2.5版(Pipeline插件的一个组件,默认安装)以来,WORKSPACE环境变量再次可用.此版本于2016-09-23发布,因此应该可以在所有最新的Jenkins实例上使用.
anu*_*901 14
“ WORKSPACE”环境变量适用于最新版本的Jenkins Pipeline。您可以在Jenkins文件中使用此文件:“ $ {env.WORKSPACE}”
下面的示例用法:
def files = findFiles glob: '**/reports/*.json'
for (def i=0; i<files.length; i++) {
jsonFilePath = "${files[i].path}"
jsonPath = "${env.WORKSPACE}" + "/" + jsonFilePath
echo jsonPath
Run Code Online (Sandbox Code Playgroud)
希望有帮助!!
| 归档时间: |
|
| 查看次数: |
106691 次 |
| 最近记录: |