[controller-dev] [yangtools-dev] [releng] Distribution creation job
Vratko Polak -X (vrpolak - Pantheon Technologies SRO@Cisco) <vrpolak@...>
Hi Luis.
As your TWS talk is nearing, I would like to present my views.
I think ${project}-integration job does basically the same thing as ${project}-merge, only the triggers (and notifications) are different. *-merge is triggered by gerrit; *-integration should be triggered by ${dependency}-merge and ${dependency}-integration jobs. Maybe we should merge them to a single ${project}-publish job if possible.
> Is there going to be a centralized 'this is what integration looks like' job?
Yes, in integration project, but it would generally be too slow and prone to failures. That is why there will be ${project}-distribution jobs, which pack only subtree of features relevant to that project. They will be triggered by ${project}-publish, and they will be triggering ${project}-scit jobs with end-to-end tests. The same tests will be run also on the full integration build, but once again that job would be slower.
> So I merge stuff to yangtools
From point of view of BGPCEP project, the following would happen. 1. yangtools-merge triggers controller-integration (and nothing else yet if Jenkins is good at dependency handling). 2. controller-integration triggers tcpmd5-integration (and unrelated jobs) 3. tcpmd5-integration finally triggers bgpcep-integration 4. bgpcep-integration triggers bgpcep-distribution 5. bgpcep-distribution triggers bgpcep-csit jobs (several configurations). 6. bgpcep-csit-3nodes fails miserably, sends e-mails to every upstream project. Probably including odlparent, as Jenkins is not that good at back-tracing triggers. … 96. Ultimately, integration-integration is triggered. 98. integration-distribution triggers integration-csit jobs. 99. After few hours all suites are finished (no idea who will be notified).
Question to Luis: or would bgpcep-integration be triggered three times (yangtools-merge, controller-integration and tcpmd5-integration)? and that would create the artifact race issue Robert was talking about. But we will have race issues anyway, as yangtools-merge will not wait patiently for integration-distribution to finish before merging the next yangtools change.
From:
controller-dev-bounces@... [mailto:controller-dev-bounces@...]
On Behalf Of Robert Varga
Hello,
|
|
Luis Gomez
Hi Vrakto, Thanks for your mail, see my answers in-line.
Hi Vrakto, these jobs are releng responsibility (not integration), so the question is for Andy and Thahn :)
and ideally a yangtools-distribution job which builds integration karaf distribution
I do not think integration job calls another integration job, only a merge calls an integration
bgpcep-integration should trigger directly from yangtools merge if you have declared the dependency
This is not correct, bgpcep-distribution is only triggered on own merges.
bgpcep-csit jobs will be triggered after bgpcep-distribution yes but also after any <project>-distribution in the upstream like yangtools-distribution, this is why it is very important for projects in upstream to define their distribution job
So far I think it is only the bgpcep project that gets notified and the reason is I think it is better the project checks first why the system test is failing before it reports the issue to the upstream project, but we can change this if people think different.
The projects will be the owners of the ODL system test so no plan to trigger anything in integration this release
Should be only after merge
Although it is not the case here, according to Andy there is no issues in having 2 jobs publishing at the same time in Nexus as this last uses timestamps at millisecond precision
|
|
Robert Varga
Hello Luis,
On 02/26/2015 07:28 PM, Luis Gomez wrote:
... and this is wrong, as shown by the way the jobs behaved when we changed guava version. I ended up re-merging the last odlparent change about 4 times just to trigger integration jobs, which needed to pick up things published by other integration jobs running in parallel. Since integration jobs publish artifacts, they introduce changes, which absolutely be acted upon by downstream projects. Even when the source code has not changed, the resulting binary artifacts have, which specify things like method signatures, imports, etc. etc. all of which are a cause for downstream rebuilds. Bye, Robert
|
|