Jenkins 管道:获取构建目录的路径/获取 config.xml 的值

Jenkins Pipeline: Get path of builds directory / Get values of config.xml

我有一个 Jenkins 多分支管道,它定期轮询我的 svn 以获取新提交。 运行 管道,创建了多个日志文件,这些文件保存在工作区目录中(将为每个新管道构建清理)。为了持久保存它们,我想将文件移动到 Jenkins 的构建目录中,所有构建特定的 jenkins-logs 等也都保存在那里。 我的文件目录中的默认路径是:

...${JENKINS_HOME}\jobs\*name-multibranch-job*\branches\*a-cryptic-name*\builds\*build-number*\

此路径在文件...${JENKINS_HOME}\config.xml中指定为

<hudson>
    ...
    <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
    ...
</hudson>

如何在我的管道脚本中访问这个值以通过 robocopy 移动我的日志文件?变量 ${ITEM_ROOTDIR}${ITEM_FULL_NAME}(参见 https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties)例如在管道脚本中无法识别:

No such property: ITEM_FULL_NAME for class: WorkflowScript

您的日志文件或您以后可能想要访问的任何其他文件是 "build artifacts"。您应该将它们指出给詹金斯,例如像这样:

     sh "echo 1 > my.1.log"
     sh "echo 2 > my.2.log"
     sh "echo 3 > my.3.log"
     archiveArtifacts allowEmptyArchive: true,
       artifacts: '*.log',
       caseSensitive: false, 
       defaultExcludes: false, 
       onlyIfSuccessful: false

这些将在您的特定构建视图中可见,并将与构建一起删除。