Reputation: 4216
I am a complete newbie to Jenkins - so bear with me! I am sure that info sits somewhere out there, but I am currently still a bit swamped with Jenkins info...
Our project's SVN root contains many more projects than what is actually needed to build the release that I am supposed to create. Jenkins by default seems to check out the HEAD version of ALL projects found under the supplied repository URL. How/where can I specify that it needs to checkout (and later monitor) about 10 relevant projects only (and not all that are found in our SVN)?
I tried to specify that using Configure => Source Code Management => Advanced => Included Regions but apparently that's a different pair of shoes.
Upvotes: 0
Views: 100
Reputation: 1977
I was unable to get post commit hook configured by the SVN administrators. Hence I took the way around. I monitored the SVN root as you are doing. And the projects of interest were lurking under it at different places. What I did was to get the XML containing the changes. In Jenkins it is possible using curl.
1 - Monitor the changes.
2 - On any changes, get the xml containing the changes.
3 - Parse it and do the necessary if the changes affect your branches of interest and check out what you need using svn command line client in a windows batch script.
Replace the tokens and paste the url to see the changes in XML format:
http://<YourjenkinsInstance>:<portNumber>/job/<YourjobName>/<BuildNumber>/api/xml?pretty=true&tree=changeSet[items[msg,paths[editType,file],commitId]]
Upvotes: 0
Reputation: 11055
If you know what are the projects you want (exact URLs), you can checkout each one as a separate SCM using the Multiple SCMs Plugin.
You just put the URL of the project's root as a new SCM entry.
I use it with Git and Mercurial and it works well. Didn't try with SVN, but it's supported so I assume the behavior is similar.
I hope this helps.
Upvotes: 1