Ahmed Omarjee wrote:
Hi,
I have a requirement to perform other operations before checkout of a
project, as well as after a successful or failed build.
The context of why I need this is as follows; I am using PVCS at a corporate
client, and have already begun writing a maven-scm-plugin for PVCS (I can't
sit around waiting for Serena to contribute their plugin). Using agile
methodology, I would normally perform a checkout, start the build process
(if changes are detected), and on successful build apply a label to the
source repository. But alas, PVCS does not have metadata locally thus a
label can not be applied to the version that was originally checked out,
which may result in inconsistencies.
A solution we have come it with (read hack), is :
- label the repository before checkout with a tag (eg. Building #123 -
01/07/2006 9:00)
- checkout using that label
- perform the build
- and on success rename the label (which strangely PVCS supports) (eg. Build
#123 - 01/07/2006 9:00)
- and on failure the label is removed (which strangely PVCS also supports)
Sounds good as long as all of the steps are optional and configurable.
If only we could have listeners to some important events such as build
start, on success, on failure, build finished, etc. this could be pluggable
behaviour.
Correct, this will happen before a build is even started.
I don't mind having a look at this and take up the challenge of maybe
implementing it, but I need some guidance and advice on the appropriateness
of this as a solution.
That would be great if you would like to take a look just beware that it
won't be a trivial task and will take a while. This is something that
has been requested several times and is something I think would be nice
to add.
To get started check out the Continuum code from trunk [1] and try to
build it with ./build.sh. You might have to download some dependencies
from Sun or likewise places but Maven should inform you.
[1]: https://svn.apache.org/repos/asf/maven/continuum/trunk/
--
Trygve