We recently moved from using Hudson to Jenkins (not by choice, our sysadmin just decided to do it one day). I know there's a big nerd-rage about Hudson vs. Jenkins but I honestly couldn't care less. I just want something that works. Well, from what we've seen, Hudson is more stable than Jenkins.Here are some of the problems we are getting (and fixes):
|FATAL: Could not checkout null with start point 1234...
Caused by: hudson.plugins.git.GitException: Error performing command: git checkout -f 1234...
Command "git checkout -f 1234..." returned status code 1: error: unable to unlink old '
|Jenkins keeps thinking one file has been modified locally, so (from the jenkins machine) git checkout that file and the tests will run fine.|
|Sometimes the Xvfb process crashes. You will only know because the tests will not stop trying to run, so any running time above 15 minutes means this has probably happened.||Restart Xvfb (which is supposed to be always running in the background):
Xvfb -ac :99 &
|Sometimes Jenkins doesn't want to checkout from git (sometimes for the same reason above, a file that has been "modified" locally, but sometimes for no apparent reason):
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
|You have to login to the jenkins machine and manually git pull origin dev from the repo, and then run the tests again (via jenkins interface).|
|Caused by: hudson.plugins.git.GitException: Error performing command: git tag -a -f -m Jenkins Build #309 jenkins-oars-dev-309
Command "git tag -a -f -m Jenkins Build #309 jenkins-oars-dev-309" returned status code 128: error: insufficient permission for adding an object to repository database .git/objects
error: unable to write tag file
|Not sure about this one. The selenium log was very big so I deleted it and the tests ran. The log is supposed to get rotated but maybe this didn't occur.|
|error: Your local changes to the following files would be overwritten by merge:
Please, commit your changes or stash them before you can merge.
|These are local changes to the files on the test machine (not the jenkins machine). So from jenkins, there's a script to remotely update the files on the test machine, but in this case there were local modifications (not sure how that happened either). There's a plan to move the .test repos/installs to the jenkins machine so we won't need to do the remote update. However this plan has been devised by our "sysadmin", so might take a while to eventuate.
Solution is to checkout the locally modified files on the test machine then do a git pull.