我刚刚加入了一家使用批处理文件构建 C++ 项目的公司。批处理做各种事情(更新 svn,现在由 jenkins 完成),创建构建文件夹,构建后删除不必要的文件,将库文件复制到构建文件夹等。
我的问题是 Jenkins 总是认为构建成功,即使它不是。当出现问题时,.bat 文件会创建一个名为 errormake.txt 的文件。如何让 Jenkins 阅读并将构建标记为失败?
另外,有什么方法可以找到从 .bat 文件中创建的构建文件夹 Jenkins(当我调用批处理文件时可能会发送一个变量)?
这是我目前用来调用 .bat 文件的单行代码:
call "C:\Source\BuildVersion\AppName\build_version.bat"
编辑:此外,这个项目被分成几个 SVN 存储库。
%SVN_REVISION%
为空白。我怎样才能得到正确的
%SVN_REVISION%
从第一个存储库(主要的)?
请您参考如下方法:
回答你的每一个问题——
Jenkins 根据最后一条命令的返回码设置 Job 的状态
在每个“执行 Windows 批处理命令” block 中运行。
如果您的最后一条命令是
copy some.log D:
,Jenkins 认为一切都很好
(如果“
copy
”命令运行良好...)使用
EXIT xx
或 EXIT /B xx
,取决于您的操作系统,其中 'xx' 是大于零的某个整数。
使用 Text-finder Plugin ,如 所述sdmythos_gr .
有一些参数可用作环境变量
对于在 Jenkins 下运行的每个脚本 - 有关这些参数的列表,请参见此处:
Jenkins Environment Variables .
对于你的问题:
%WORKSPACE%
- 工作区的绝对路径%BUILD_NUMBER%
- 当前版本号,如“153”%BUILD_ID%
- 当前构建 id,例如“2005-08-22_23-59-59”(YYYY-MM-DD_hh-mm-ss)
这个答案来自同一个链接:
%SVN_REVISION%
- 对于基于 Subversion 的项目,此变量包含模块的修订号。
如果您指定了多个模块,则不会设置 .
希望有帮助