Вызов многоступенчатой ​​задачи капистрано из задачи капистрано - PullRequest
4 голосов
/ 02 августа 2010

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

Например:

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

Это правильный способ вызова многоступенчатой ​​задачи из другойЗадача cap?

Задача сборки создает новую ветку 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)

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

1 Ответ

7 голосов
/ 20 января 2011

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

deploy:production:whatever

выставлены в пределах Cap как

deploy.production.whatever

У вас также есть top пространства имен для перехода к вершине пространства имен, потому что пути относительны.

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

top.deploy.production.whatever
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...