Difference between revisions of "Continuous Integration: Dependency Walker Jenkins Pipeline"

From Gcube Wiki
Jump to: navigation, search
(Sample Report)
Line 6: Line 6:
 
* generate the list of projects that have modules depending on each maven module in P
 
* generate the list of projects that have modules depending on each maven module in P
 
* print a formatted report of the information extracted from the analysis.
 
* print a formatted report of the information extracted from the analysis.
 +
 +
= Pipeline Definition =
 +
The definition of the gCube Dependency Walker pipeline is maintained in this Git Repository: https://code-repo.d4science.org/gCubeCI/gCubeDepsWalker
  
 
= Interface =
 
= Interface =

Revision as of 02:41, 13 March 2020

The Dependency Walker pipeline allows to navigate the dependencies among projects in Jenkins.

Given the name of a Jenkins project (P):

  • navigate the maven modules built by P
  • recursively analyze the module's dependencies and their Jenkins projects
  • generate the list of projects that have modules depending on each maven module in P
  • print a formatted report of the information extracted from the analysis.

Pipeline Definition

The definition of the gCube Dependency Walker pipeline is maintained in this Git Repository: https://code-repo.d4science.org/gCubeCI/gCubeDepsWalker

Interface

Jenkins DepsWalkerInterface.png

Report

Sample Report

Dependency Report for workspace-sharing-widget

|--Project Maven Modules
	|--Module: org.gcube.portlets.widgets:workspace-sharing-widget
		|--Deepest Dependency Level: L1
		|--Used by (Maven Modules)
			|--org.gcube.portlets.user:tabular-data-share-widget
			|--org.gcube.portlets.user:workspace-tree-widget
		|--Referred by (Jenkins Projects)
			|--workspace-sharing-widget
			|--tabular-data-share-widget
			|--workspace-tree-widget
	|--Module: org.gcube.portlets.user:tabular-data-share-widget
		|--Deepest Dependency Level: L2
		|--Used by (Maven Modules)
			|--org.gcube.portlets.user:tabular-data-manager
			|--org.gcube.portlets.user:tabular-data-rule-widget
		|--Referred by (Jenkins Projects)
			|--tabular-data-share-widget
			|--tabular-data-manager
			|--tabular-data-rule-widget
	|--Module: org.gcube.portlets.user:workspace-tree-widget
		|--Deepest Dependency Level: L2
		|--Used by (Maven Modules)
			|--org.gcube.portlets.user:workspace
		|--Referred by (Jenkins Projects)
			|--workspace-tree-widget
			|--workspace
	|--Module: org.gcube.portlets.user:tabular-data-manager
		|--Deepest Dependency Level: L3
		|--Used by (Maven Modules)
		|--Referred by (Jenkins Projects)
			|--tabular-data-manager
	|--Module: org.gcube.portlets.user:tabular-data-rule-widget
		|--Deepest Dependency Level: L3
		|--Used by (Maven Modules)
			|--org.gcube.portlets.user:tabular-data-manager
		|--Referred by (Jenkins Projects)
			|--tabular-data-rule-widget
			|--tabular-data-manager
	|--Module: org.gcube.portlets.user:workspace
		|--Deepest Dependency Level: L3
		|--Used by (Maven Modules)
		|--Referred by (Jenkins Projects)
			|--workspace


|--All Downstream Projects
	|--tabular-data-manager
	|--tabular-data-rule-widget
	|--tabular-data-share-widget
	|--workspace
	|--workspace-sharing-widget
	|--workspace-tree-widget