Reputation: 4239
What do you use to manage the workflow of deploying your application after the build completes? I'm not talking about just the act of getting files on a server, I'm talking about what happens after that. Verification, testing, approval, migration to production, retiring old builds, etc.
Example:
Any good applications out there that can manage long running build workflows?
Update
I should also mention that I'm looking for tooling that actually implements the workflow and not just to track what state it's in. (Copy build, change build status, send emails, start/stop services, etc)
Upvotes: 18
Views: 1384
Reputation: 47243
We use this old Welsh guy called Alistair. Works like a charm.
Upvotes: 0
Reputation: 10595
As far as I know, there is no single system that will automatically do all the tasks you mention. You need to write some scripts and tests to automate the deployment of your system and its testing. Then you can use a CI server to put it together. Here's what I'd suggest:
Once you have these things automated, you can use a continuous integration server to schedule these tasks or do them on demand. I'm most familiar with Bamboo (I work for Atlassian), but I'm sure CruiseControl and Hudson have similar features. Here's how you'd do it in Bamboo:
You'd then do the same and set up a build for your production deployment, but probably with only manually triggering and with more restrictive permissions.
Upvotes: 2
Reputation: 9732
I've used a web-based open source tool called Hudson and have been very happy with it. It's very good at managing builds and has excellent integration with SVN and ant. The only caveat is that you need to host it on your own server.
Upvotes: 1
Reputation: 7970
If you manage to automate your tests (and depending on what sort of software you do, there's no reason why not), you should be able to use any continuous integration software.
The thing is, each phase can be written down as tasks that can be executed one after an another depending of what was the result of previous case.
For example, i've had a setup of CruiseControl that does exactly what you describe here, testing phase was running bunch of unittests (c++/qt) and uat stuff was written with testability driver.
Upvotes: 2
Reputation: 6960
This build and release systems are a mixture of different stuff, so following your list I'll respond:
From here on, we do it pretty much with a mixture of ant and bash scripts
The harder thing we've found was to restart our application servers since we haven't had good experiences with hot deployments but it's doable with only maven, ant and bash.
Upvotes: 3
Reputation: 31
I don't really see why this couldn't be done using Ant (http://ant.apache.org) with some tasks, one per step. Since the timing of these things is manual and each environment can only have one copy of the software at one time, there doesn't seem to be much to do but code the workflow and letting folks at it.
Upvotes: 2
Reputation: 11183
ThoughtWorks Go looks the part. We use Maven at the moment, but still at a fracion of its capabilities.
Upvotes: 2
Reputation: 51565
A lot of companies use a project scheduling application, like MS Project.
Here's an open source project scheduling application, Open Workbench, that you might find useful. It has limitations, but I've used it to manage my schedules.
Upvotes: 2