Trigger Hudson build on SVN commit
build, hudson, svn
Solution
According to "Building a software project # Builds by changes in Subversion/CVS", Hudson needs to poll your SVN repo in order to detect changes and trigger the build.
However, that can be initiated on each commit from the SVN, like in this thread. The official script is at the Subversion Plugin page.
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "`svnlook changed --revision $REV $REPOS`" \
--output-document "-" \
--timeout=2 \
http://server/hudson/subversion/${UUID}/notifyCommit?rev=$REV
But it is specified:
For this to work, your Hudson has to allow anonymous read access to the system. If access control to your Hudson is more restrictive, you may need to specify the username and password, depending on how your authentication is configured.
Problem
I have already set up a version control system (Subversion) which is going to be used by developers to commit and update their code (let's say that its address is `https://server/svn/project`). Only authenticated users will be able to have access to project's SVN. On the other hand, I have installed Hudson as the project's continuous integration server (address of the project is `server:8080/job/project`). I'd like to achieve the following: - Hudson builds to be triggered automatically when there is an SVN commit. - Mails are sent to the respective developers (the ones that committed code) when their committed code doesn't build, meaning that when user A commits code that doesn't build, only user A gets an email containing the notification. I have set up matrix-based authorization for Hudson users, because I don't want to be open to anyone. I have seen some suggestions for `post-commit` hooks, but none of them worked until now. Can somebody suggest what to do regarding both issues? Specific steps would be appreciated.