我刚加入一家使用批处理文件构建C
++项目的公司。该批处理可以完成所有事情(更新svn,现在由jenkins完成),创建构建文件夹,在构建后删除不必要的文件,将库文件复制到构建文件夹等。
我的问题是,詹金斯(Jenkins)始终认为构建成功,即使失败了。发生问题时,.bat文件将创建一个名为errormake.txt的文件。我如何让詹金斯阅读该文章并将其标记为失败?
另外,有什么方法可以找出从.bat文件内部创建的构建文件夹Jenkins(也许在我调用批处理文件时发送变量)?
这是我当前用来调用.bat文件的单行:
call "C:\Source\BuildVersion\AppName\build_version.bat"
编辑:此外,此项目分为几个SVN存储库。%SVN_REVISION%
是空白的。如何%SVN_REVISION%
从第一个存储库(主要存储库)中获取正确的信息?
要回答您的每个问题-
詹金斯根据 在每个“ 执行Windows批处理命令 ”块中运行的 最后一个命令 的返回码来设置作业的状态。 如果您的最后一条命令是,
Jenkins认为一切正常 (如果’ ‘命令运行正常…)
__
copy some.log D:
copy
根据您的操作系统,使用EXIT xx
或EXIT /B xx
,
其中“ xx”是一个大于零的整数。
使用 sdmythos_gr 提到的
Text-finder插件 。
对于在Jenkins下运行的每个脚本,有一些参数可用作环境变量-请参阅此处以获取这些参数的列表:
Jenkins环境变量 。
对你的问题:
* `%WORKSPACE%` -工作区的绝对路径
* `%BUILD_NUMBER%` -当前的内部版本号,例如“ 153”
* `%BUILD_ID%`-当前的版本ID,例如“ 2005-08-22_23-59-59”
(YYYY-MM-DD_hh-mm-ss)
这个答案来自相同的链接:
* `%SVN_REVISION%`-对于基于Subversion的项目,
此变量包含模块的修订号。
如果指定了多个模块,则不会设置该模块 。
希望能有所帮助
更新:这似乎是插件版本-降级到可以解决此问题。票证是在以下位置创建的: https://issues.jenkins-ci.org/browse/jenkins-56402 在远程执行器上使用时,如何获取生成的真实状态? null
问题内容: 我们正在为詹金斯(Jenkins)经营很多工作。目前,这些作业通过使用“主作业”进行了分组。这些仅执行一组的所有工作。但是,如果运行这些主作业之一,它将同时启动约10个其他作业。根据这些工作的持续时间和构建处理器的数量(目前为6个),Jenkins被阻止了更长的时间(最多一个小时)。另一件事是,这些作业实际上并不适合进行如此大规模的并行化。 为了解决这个问题,我正在寻找一种方法(一个插
问题内容: 我有一个简单的批处理文件。我想 从Jenkins调用/运行/执行该文件 。 Jenkins中是否有相同的插件? 如何从Jenkins执行批处理文件?如果有相同的任何教程或文档。 问题答案: 在Linux上,转到jenkins作业,转到配置,添加构建步骤“ execute shell”,然后键入脚本的名称。请确保您的文件是可执行文件(chmod 777 yourscript.sh),并且
问题内容: 我正在Windows 7上运行詹金斯服务。 我想做一个非常简单的工作,这将启动我的Firefox。(例如) 我配置了一个自由样式项目,并设置了“执行Windows批处理命令”选项。 在这里,我尝试插入几条命令,但它们均失败了。 像“ echo hello”之类的命令或其他本机命令按预期工作。 但是类似“ explorer”的命令-应该打开提到的目录,否则“ c:\ firefox.ln
问题内容: 我不确定我在这里使用的术语是否正确,因此我将尝试尽力解释。我使用Jenkins来运行我们的Java自动化。有许多长时间运行的作业(2-10小时)针对不同版本的被测产品不断执行。我需要一种方法来快速查看作业的“构建历史记录”框,并查看哪个作业正在测试哪个产品版本。 我已经成功地使用了Groovy Postbuild插件在Build History Box中的右侧添加了一个徽章(我认为就是
问题内容: 我想要一个可以通过作业名称卷曲的jenkins build / CI作业的API。jenkins是否有可用的此类API? 问题答案: 2小时前,我在这里发布了使用Jenkins REST API和Curl的解决方案:使用批处理脚本开始Jenkins构建 这是curl命令的示例(对于带有参数的作业): 和没有参数的工作: 如果您不想使用用户名/密码,则可以为您的Jenkins用户生成一个