We use phing to deploy SemanticScuttle:
- generate zip archive for distribution
- create PEAR package
- upload zip to SourceForge
- update the PEAR channel with the new package file
- render reStructuredText documentation into html files and uploading them. Currently with
exec but I'm on the way writing a separate task for it.
Uploading the zip file and the channel is done via rsync, which is unfortunately not supported by phing through a special task - but using exec is always possible and works nicely.
In the end, it saves a lot of time and we're able to test, package and deploy our app with one single command (which gives us another point on the Joel Test). I would not want to live without it.
See the build.xml code.