I'm trying to use Cap2 to deploy non-Rails applications and am running
into probably an impedance mismatch.
Capistrano is build to checkout one project/application from SVN (or
whichever SCM) and deploy it onto remote servers. It assumes that this
single checkout/deploy step will cause the entire web application to
be deployed.
In my case, we have 6 difference web apps (each sitting in their own
folders in SVN). For the entire website to be functioning, I need all
6 webapps to be deployed and running. Whenever a new build is rolled
out, I need all 6 webapps to be updated.
I've written a custom task to handle this --
task :checkout do
get_defaults # initializes the $projects with the list of projects
deploy.setup
for project in $projects
set :repository, "http://agni.cleartrip.com/svn/repos/
#{project[0]}"
set :application, "#{project[1]}"
puts "#{application} -- #{repository}"
deploy.update_code
end
But with each iteration the same application is being checked out and
deployed! Upon digging deeper into the Capistrano code I found the
culprit:
def command
@command ||= case copy_strategy
when :checkout
source.checkout(revision, destination)
when :export
source.export(revision, destination)
end
end
Almost all private helper functions in copy.rb (the strategy which I'm
using) are written in this way. They don't compute commands/variable
values more than once.
Am I barking up the wrong tree? Is there a more elegant way of doing
this in Capistrano?
Saurabh.
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---