Вызов многоступенчатой ​​задачи capistrano из задачи capistrano

У меня есть задача 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

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

Задача сборки создает новую ветку 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 и машина развертывания не могут взаимодействовать друг с другом.


person manlycode    schedule 02.08.2010    source источник
comment
Теперь все на 100%. Я, должно быть, опытный пользователь!   -  person manlycode    schedule 03.08.2010


Ответы (1)


Названия задач вроде

deploy:production:whatever

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

deploy.production.whatever

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

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

top.deploy.production.whatever
person empz    schedule 19.01.2011