I'm currently trying to set up automated deployment for our node.js based system. I've been doing quite a bit of research, but nothing really has jumped out as the obvious choice of tool to automate what I'm trying to do, which can be summarised as:
I'm probably going to use Jenkins for the high-level management of this, but am undecided on the tool to use to actually script the work.
It doesn't have to be a JS based build script, but that's an option (although I'm not entirely convinced that JS is the right language for this stuff anyway). Would be ok with Python or Bash style solutions.
What's a sane/robust choice capable of the tasks listed above?
Thank you!
UPDATE: Sorry, I didn't mention before, but ideally I'd like to have the build tasks run on a central Build/Deployment server, and not locally on the development machines.
In case it is of any value to users in the future, I ended up going with Fabric.
Nowadays I am using Capistrano for all my deployment needs. Be it PHP, Ruby or Node.
There are recipes for almost all situations, but with experience, it is easy to build your own. You can hook your own commands to certain events in deployment process.
Capistrano uses SSH to access production or staging servers and issue commands remotely.
Here are some recipes for node.js (but I have not tried them):
If you insist on using your own servers to host the app, you can always use grunt.js for the automation. You can write custom tasks for it and do whatever you want, or find some for the mentioned cases in the community. I believe minification and such already exist.
As a personal recommendation, though, I can say I've been happy with hosting my node apps on NodeJitsu (paid service). They provide a command-line utility installed through npm, which can copy your code to their cloud, do a snapshot and start the app automatically. This is the easiest deployment scenario I've ever done.