I have a set of unit test projects (one per customer), a set of config projects per customer, and a core Java. The unit tests are just JUnit tests, the config projects are just customer-specific xml files, etc, and the core project is the runtime. So the unit tests are testing the specific config开发者_如何学运维 for each customer.
So my unit test projects depend upon the core, and their corresponding unit test project. All as Maven2 dependencies.
Now, what I want to happen is, if a developer updates a config project that breaks the unit test project, the build will fail. Even if the unit test or core projects are unchanged.
However, even though in Hudson, it has registered that the core and config projects are upstream to the unit test projects, it still only emails developers when the unit tests fail when they checked in to the unit test project.
I have tried using the "Blame Upstream Committers Plugin", and also the Email-Ext plugin, setting the Committers and Culprits to be emailed. But none of these work, even though I don't see why not.
One thing I can do is merge the unit test and config projects. This is a drastic move as they like the customer config isolated, but it is possible. But I would like to know why the above doesn't work.
Thanks if you can help, Justin
Did you have fingerprinting enabled when you tried the Blame plugin? (Sorry to post this as an answer, can't comment yet)
I am struggling with this same issue. According to the docs for the plugin you need to ensure that you have fingerprinting turned on for both the upstream and downstream project, and that they must fingerprint files that "hudson (jenkins) can determine came from an upstream build". The easiest way to do this is only fingerprint the files that are built in the upstream project.
I think the files need to vary between projects in a unique way (i.e. change every build) as there are several people reporting that upstream projects of earlier builds get blamed (when it does work).
The above is true for either the plugin or the ext-mail plugin with hudson.upstreamCulprits=true enabled.
精彩评论