如何在 Jenkins Workflow 插件中获取 SVN 变更日志?
How to get SVN changelog in Jenkins Workflow Plugin?
我希望只有当 SVN 中的特定目录发生变化时,我才能在我的工作流程中做一些特殊的事情。
为此,我希望能够访问当前版本的更新日志。
我知道它们存储在:
changelog<number>.xml
如何在 groovy 脚本中阅读它们?
我正在使用:
Jenkins 1.627, Workflow 1.10, Svn plugin 2.5.2
谢谢
好的,我明白了。这是:
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
...
虽然目前有获取此信息的低级方法,但如果您没有使用 Groovy 沙箱,我已提交 JENKINS-30412 一个可以安全使用的受支持和记录的功能来自任何脚本。
我希望只有当 SVN 中的特定目录发生变化时,我才能在我的工作流程中做一些特殊的事情。
为此,我希望能够访问当前版本的更新日志。
我知道它们存储在:
changelog<number>.xml
如何在 groovy 脚本中阅读它们?
我正在使用:
Jenkins 1.627, Workflow 1.10, Svn plugin 2.5.2
谢谢
好的,我明白了。这是:
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
...
虽然目前有获取此信息的低级方法,但如果您没有使用 Groovy 沙箱,我已提交 JENKINS-30412 一个可以安全使用的受支持和记录的功能来自任何脚本。