2010-08-02 3 views
4

У меня есть задача capistrano, которая объединяет развертывание нескольких этапов проекта Rails.Вызов многоступенчатой ​​задачи capistrano из задачи capistrano

Например:

task :consolidated_task do 
    build #creates a new release branch from master, 
      #sets a variable with the relese branch name 

    staging 
    deploy.migrations 

    production 
    deploy.migrations 
end 

Является ли это правильный способ назвать многоступенчатую задачу из другой задачи крышки?

Задача построения создает новую ветвь git и публикует ее. Имя новой ветки сохраняется как переменная capistrano. стадийные и производственные этапы затем используют эту переменную, чтобы указать, из какой ветви развертываться.

При выполнении этой задачи, он терпит неудачу с:

fatal: working tree '/Users/<my working directory>' already exists. 
/usr/local/lib/ruby/gems/1.8/gems/capistrano-2.5.19/lib/capistrano/recipes/deploy/strategy/copy.rb:99:in `initialize': No such file or directory - /var/folders/3d/3dKYNUwQGOSLZFXsMF-uv++++TM/-Tmp-/20100802182750/REVISION (Errno::ENOENT) 

я выдвигаю источник из моей локальной машине в качестве хранилища мерзавца и машины развертывания не могут взаимодействовать друг с другом.

+0

Теперь на 100%. Я должен быть сильным пользователем! – manlycode

ответ

7

имена задач, как

deploy:production:whatever 

подвергаются в Cap, как

deploy.production.whatever 

Вы также top пространств имен, чтобы перейти к верхней части пространства имен, так как пути относительны.

Таким образом, независимо от того, в котором пространство имен ваша задача в настоящее время вы всегда можете сделать thigs как:

top.deploy.production.whatever 
Смежные вопросы