2010-11-12 91 views
12

我试图找出谁触发了失败的哈德森构建。但我发现Started by an SCM change而不是Started by 'UserId'。这是什么意思?什么是Hudson的“由SCM改变开始”?

+0

语法困扰我... – pbx 2014-04-16 03:46:42

+4

@pbx它实际上应该是“通过SCM变革开始”,“一个“在这里是正确的词。缩写的a/an取决于缩写词(“Es”)的第一个字母的发音。类似于“一小时”(根据口音发音为awer/aar)。 – Sagar 2014-06-17 12:17:07

回答

14

这意味着某人在代码中更改了您的版本控制系统/软件配置管理(CVS,SVN,Git等),并且Hudson根据此更改开始构建。

您应该能够通过单击左侧菜单上的“更改”链接查看它是谁。

+0

我在这里看到的是,通常,当有人提交时,它会显示“从____开始更改”。当它说“由SCM改变开始”时,我认为这意味着Jenkins出现了一些问题,以至于无法确定谁实施了改变。 – Trejkaz 2016-09-28 00:02:52

+1

这实际上并非如此。如果您的工作设置为轮询您的SCM,并且发现更改已提交(存储库已更改),则该消息将声明该作业是由SCM更改触发的。与用户无关 - 即使没有配置用户,也会发生这种情况,但配置的作业配置为轮询您的SCM – Sagar 2016-09-28 13:20:26

+0

啊,也许您没有配置用户。但是,如果你确实有用户配置,至少在我们的情况下,它说明哪个用户做了它。 – Trejkaz 2016-09-28 23:08:48

6

“SCM”是“软件配置管理”,即您的版本控制系统。 Hudson可以配置为轮询CVS,SVN等来更改源代码,并基于该更改触发构建。

2

我正在开发一个脚本,用于向启动构建的开发人员发送包含变更集列表的电子邮件。在网络上花了几个小时试图寻找解决方案后,我发现了一个解决方法,通过哈德森日志文件进行挖掘。可能不是最干净的方式,但它的工作原理。每当哈德森发起构建时,它都会将构建状态记录到日志文件中。日志看起来像这样..

Started by user <****> 
Building remotely on Slave1 
$ hg clone -r test_clone https://mercuial.com/build /some/workspace/test_clone 
adding changesets 
adding manifests 
adding file changes 
added 355 changesets with 298 changes to 43 files 
updating to branch default 
41 files updated, 0 files merged, 0 files removed, 0 files unresolved 
... 
... 

日志文件在~workspace/jobs/${RELEASE}/builds/${BUILD_NUMBER}/log。然后您可以解析UserId的日志文件。像这样的东西应该工作。

用户ID = head -1 ~workspace/jobs/${RELEASE}/builds/${BUILD_NUMBER}/log|cut -d" " -f4

0

已在詹金斯同一同样的问题时结帐分支名和指定的分支名称,其中。任何改变都会触发哈德森自动创建一个追赶版本。

要解决:改变当地的分支机构名称到别的东西(或不使用它,也许)