如何在Jenkins Workflow Plugin中获取SVN更改日志?

时间:2015-09-05 22:52:02

标签: jenkins jenkins-workflow

我希望能够在我的工作流程中做一些特殊的事情,只有当SVN中的特定目录发生了变化时。

为此,我希望能够访问当前版本的更改日志。

我知道他们的存在:

changelog<number>.xml

如何在groovy脚本中阅读它们?

我正在使用:

Jenkins 1.627, Workflow 1.10, Svn plugin 2.5.2

谢谢

2 个答案:

答案 0 :(得分:0)

好的,我明白了。这是:

node ('master') {
    dir ("${env.JENKINS_HOME}/jobs/${env.JOB_NAME}/builds/${env.BUILD_NUMBER}") {
        int changelogNumber = 0;
        while(true){
            String changelogFile = "changelog${changelogNumber}.xml";
            if (fileExists(changelogFile)) {
                String changelogFileContents = readFile(changelogFile)
                // check changes in special dir
            } else {
                break;
            }
            changelogNumber++;
        }
    }
}

我还不确定是什么原因导致更改日志为空:

-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog0.xml
-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog1.xml
-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog2.xml

即使我可以在日志中看到一些SCM更改:

Running: General SCM
Updating svn://<my_repository> at revision '2015-09-08T16:04:40.627 +0200'
U         <path>/<file>.txt
...

答案 1 :(得分:0)

虽然目前有一些获取此信息的低级方法,但如果您没有使用Groovy沙箱,我提交了JENKINS-30412以获得可以从任何脚本安全使用的受支持和记录的功能。