|
For some of our components, Jenkins build fails with the following error message in the console log:
The build fails under those circumstances:
- The affected integrity project is a variant (development path) project.
- The original project of that variant project has been moved.
In this case, the module
d:/MKS/PlatformA/OldComponent/ModuleA (MKS project name: d:/MKS/PlatformA/OldComponent/ModuleA/ModuleA.pj)
has been moved to
d:/MKS/PlatformA/ComponentA/ModuleA (new MKS project name: d:/MKS/PlatformA/ComponentA/ModuleA/project.pj)
Problem analysis:
The code line at
accesses the configuration path of a member in a prepared member list structure, which is null:
The main cause seems to be speciality in integrity with the si projectinfo (this is the way currently implemented in the integrity plugin):
Result:
Here we get back the old project name (which was valid before the move).
But when we execute project info using the configuration path we get the
new project name as a result:
Result:
The problem is that during IntegrityCMProject.parseProject(), where the project including it's members is parsed, the project name that comes with the member infos is matched against that name (using Hashtable<String, String> pjConfigHash) to find out the configuration path for each member. Here the "new name" is matched against the "old name" so that the config
path stays null.
My proposal for a workaround would be to change the implementation to the second way in IntegritySCM.checkout():
We have this approach in use for our projects and it solves that problem. It would be nice if we could have the fix/workaround in one of the next ptc-integrity plugin revisions. I will provide a pull request with that solution.
|