Lightweight build-automation and deployment tool
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.
Answers (3)
Look at Hyper Build - it does everything you want, except for the BlackBerry thing. But as others have said, you could use a workaround for that like using Remote Desktop.
DISCLAIMER: I work for LogicNP Software, the developer of Hyper Build.
Take a look at FinalBuilder. As for the Blackberry requirement, perhaps you could use Remote desktop to see what's happening on the build machine? I don't know if Blackberry does that though.
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:
- Manual build and deploy ability
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.
- Check out from SVN
You can configure a job to checkout or update from a specific SVN repository.
- be able to schedule builds
even cron-like
- use the build scripts modularly; I want to be able to change build scripts easily
We use ant and configure a build with property definitions in a Hudson job.
- 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.
You can configure a job with different SVN repositories and branches.
- be able to have multiple, concurrent builds
You can specify how many parallel jobs Hudson should handle, though, you can have multiple concurrent builds.
- Verbose logs
For each job, Hudson keeps the log output of your build/deploy scripts
- Ability to stop a build
You can stop a running job at any time
- Security permissions
Hudson provides fine-grained user permissions. You can even use LDAP.
- Email notifications on success or failure
Sure. Hudson also provides notification via the Jabber chat protocol.
- Usable via blackberry
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.