获取SVN签入号码的Jenkins变量

获取SVN签入号码的Jenkins变量,svn,scripting,jenkins,Svn,Scripting,Jenkins,大师 我正在使用windows jenkins和linux SVN使用maven构建java代码 我的要求是在验证最近触发的作业中是否没有更改特定的文件列表后,验证在jenkins作业中继续执行构建 若特定文件存在,我们应该让promot继续作业 我知道我可以使用命令 svn diff-r REV:HEAD--summary | findstr/g:“filename.list” 如何在运行时从jenkins的脚本中获取上一个成功的构建SVN版本和最新签出的版本 另外,jenkins job中的

大师

我正在使用windows jenkins和linux SVN使用maven构建java代码

我的要求是在验证最近触发的作业中是否没有更改特定的文件列表后,验证在jenkins作业中继续执行构建

若特定文件存在,我们应该让promot继续作业

我知道我可以使用命令
svn diff-r REV:HEAD--summary | findstr/g:“filename.list”

如何在运行时从jenkins的脚本中获取上一个成功的构建SVN版本和最新签出的版本

另外,jenkins job中的pre-buld脚本如何为我提供接口,让我的守门员决定是否继续工作?

以下内容可能会有所帮助:

echo $SVN_REVISION
svn_last_successful_build_revision=`curl $JOB_URL'lastSuccessfulBuild/api/json' | python -c 'import json,sys;obj=json.loads(sys.stdin.read());print obj["'"changeSet"'"]["'"revisions"'"][0]["'"revision"'"]'`
diff=`svn di -r$SVN_REVISION:$svn_last_successful_build_revision --summarize`

请查看此链接以获取其他建议:

第一件事:詹金斯没有“提示”您做出决定的机制。您可以有各种各样的构建参数和逻辑来决定是否继续[自动]构建,但作业无法暂停并等待用户输入

要获取Jenkins最后签出的修订,只需在Jenkins运行时使用
%SVN\u revision\u 1%
变量即可。
\u 1
表示作业配置中定义的第一个SVN模块。如果定义了多个模块,则可以使用
%SVN\u REVISION\u 2%


要真正获得“上次成功构建”的修订版,您可以使用Technext在另一个答案中建议的内容。请注意,您需要在系统中使用命令行
curl
,显然需要将他的Linux语法更改为Windows语法。

我使用-

$url=
curl-s”http://localhost:8080/job/Rev-编号/lastStableBuild/“| findstr”由“
”开始; $url=~/([0-9]+)/

无论如何,我们必须在windows上安装curl