-
Includes a python program snvModified.py which helps in creating a generic CI/CD platform for the entire SCM (SVN) and dynamically trigger builds for each of the modified projects.
-
It dynamically generates temporary properties files like build0.properties, build1.properties etc. in Jenkins job workspace, each of which contain a key 'modified' which is set equal to the name of the project that was modified in the SVN repository. Ex:
modified=SampleApp
-
The number of these properties files would depend on the number of projects that have been modified in our SCM.
-
For each of these properties files, we can invoke one build in Jenkins using "Parametrized Build Trigger" and Parameter Factory: "For every property file invoke one build" plugin.
-
After the parallel builds have been invoked, we delete these properties files, so that in the next poll of Jenkins, only new dynamically created files are used for triggering not the ones we used in current build trigger.
python3 svnModified.py (for Ubuntu/Linux machines)
python svnModified.py (for Windows machines)
You need to fill in the following variable values manually into the program:
- svn_url
- Jenkins workspace location