2
votes

We're moving servers to another system. We have setup Jenkins, imported all jobs with the job import plugin.

Next I would like to import the data for each of those jobs. This is what I'm talking about:

Build history of every individual job

Please note that the jobs are distributed across multiple folders and subfolders. How can I copy/move the build history for each of these jobs to the new server?

2

2 Answers

3
votes

I have just completed the same mirgration minutes ago, lol. You can do it simply by putting the folders in your old server's build path to new one.

The build history locates in the build directory, if you don't know where it is, check the config.xml in your Jenkins folder (AKA $JENKINS_HOME\config.xml) and ctrl+F "buildsDir".

Default build path in Jenkins is ${ITEM_ROOTDIR}/builds, which is inside the jobs folder under $JENKINS_HOME. I personally recommend you to have the history and Jenkins home located in different drives for a better memory management.

So, simply copy the jobs and history to the new build server, put the old jobs under $JENKINS_HOME\jobs and the old build folder in the new build directory (buildsDir).

Noted that there are some files that cannot be copied because there are some pointers such as Last Successful build, lastFailedBuild in the history. Simply skip those files

Hope it helps

3
votes

If your old Jenkins server is still up and running you can ssh to it and use rsync to copy over the builds directory for each job to the new server. Replace $JENKINS_HOME and $NEW_SERVER below with your actual values.

for i in $JENKINS_HOME/jobs/*; do
  rsync -az -e ssh ${i}/builds/* $NEW_SERVER:${i}/builds/
done