小编典典

在Jenkins Pipeline插件中获取工作区目录的绝对路径

jenkins

我目前正在对Jenkins
Pipeline插件(以前称为Workflow插件)进行一些评估。阅读文档后,我发现当前无法使用env.WORKSPACE以下方法检索工作空间路径 :

以下变量当前在工作流脚本中不可用:

NODE_LABELS

工作空间

特定于SCM的变量,例如SVN_REVISION

还有其他方法如何获取当前工作空间的绝对路径吗?我需要运行一些测试,该测试又得到一些参数(某些可执行文件的绝对路径)。我已经new File("").absolutePath()@NonCPS部分中尝试使用,但看起来非CPS的东西总是在主服务器上执行。

是否有人知道如何在 运行一些将路径存储到某个文件中的批处理脚本的 情况下 获取此路径的信息,以后可以再次读取该文件?


阅读 1408

收藏
2020-07-25

共1个答案

小编典典

由于管道节点和进程插件的版本2.5(管道插件的组件,默认情况下已安装),因此WORKSPACE环境变量再次可用。该版本发布于2016-09-23,因此应该在所有最新的Jenkins实例上可用。

node('label'){
    // now you are on slave labeled with 'label'
    def workspace = WORKSPACE
    // ${workspace} will now contain an absolute path to job workspace on slave

    workspace = env.WORKSPACE
    // ${workspace} will still contain an absolute path to job workspace on slave

    // When using a GString at least later Jenkins versions could only handle the env.WORKSPACE variant:
    echo "Current workspace is ${env.WORKSPACE}"

    // the current Jenkins instances will support the short syntax, too:
    echo "Current workspace is $WORKSPACE"

}
2020-07-25