gerritexec is a command line tool listening to gerrit on a designated project. On each new patchset, it will:
- git clone the project
 
- git pull the patchset
 
- cd in the git tree and run a script
 
- positively review the patchset ( +1 ) if the program exit(0)
 
- negatively review the patchset ( -1 ) otherwise
 
For instance It can be used to run the integration tests found in the git tree of the stackforge/puppet-ceph project:
GEM_HOME=~/.gems gerritexec --hostname review.openstack.org \
           --username puppetceph \
           --script ' ( bundle install ; bundle exec rake spec:system ) > /tmp/out 2>&1 ; r=$? ; pastebinit /tmp/out ; exit $r #' \
           --project stackforge/puppet-ceph
Larger projects should consider using zuul or a gerrit jenkins plugin.
 Continue reading “gerritexec: continuous integration one-liner”