I am looking for lightweight proprietary or open-source build-automation and deployment software (so, a GUI, and not command line based). Currently, developers commit code to SVN, and a separate team is responsible for building the code, and deploying it to multiple environments. So, the tool is needed for managing the build and deploying it only, and not keeping track of developers and managing SVN (continuous integration stuff, etc, is not needed).
In terms of needs, I would like it to:
- Run on Unix
- Builds Java projects
- Manual build and deploy ability
- Web-based GUI
- Check out from SVN
- be able to schedule builds
- use the build scripts modularly; I want to be able to change build scripts easily
- be able to specify different SVN branches for a single build, ie have modules in a build coming from multiple SVN sources and not just a single SVN branch.
- be able to have multiple, concurrent builds
- Verbose logs
- Ability to stop a build
- Security permissions
- Email notifications on success or failure
- Usable via blackberry: I want to be able to initiate builds and deployments via blackberry. Essentially, the entire site should be black berry friendly for builds/deployment.
This last one (the blackberry one) might be limiting, but it’s something that I would like. If you have solutions that meet the other requirements, let me know about those too, since blackberry support isn’t a deal breaker.
Although it is meant to be a continuous integration tool, I recommend Hudson. It can be run natively or via web container (e.g., Tomcat). You can configure Jobs in Hudson that automate various tasks for you. A lot of plugins help you in fulfilling your special needs.
In terms of your needs:
You can trigger jobs on your own or automatically. Whether the job only builds you application and deploys it or triggers another job that deploys it is up to you.
You can configure a job to checkout or update from a specific SVN repository.
even cron-like
We use ant and configure a build with property definitions in a Hudson job.
You can configure a job with different SVN repositories and branches.
You can specify how many parallel jobs Hudson should handle, though, you can have multiple concurrent builds.
For each job, Hudson keeps the log output of your build/deploy scripts
You can stop a running job at any time
Hudson provides fine-grained user permissions. You can even use LDAP.
Sure. Hudson also provides notification via the Jabber chat protocol.
I don’t know whether a blackberry app exists. However, since Hudson is a web application you may access your Hudson instance via blackbrowser browser.
Well this sounds like a Hudson promotion 😉 However, I’m not involved in Hudson, I just used it each day and it helps me a lot in fulfilling my development tasks.