Что означает:except => {:no_release => true} в Capistrano DSL

#capistrano #dsl

#capistrano #dsl

Вопрос:

Например, в:

  task :restart, :roles => :app, :except => { :no_release => true } do
 end
 

Ответ №1:

Глядя на руководство, кажется, что вы можете передать :no_release атрибут в role определение (обычно это делается для веб-роли). Это указывает на то, что код не должен проверяться на серверах в этой роли.

Итак, я предполагаю, что когда задача указывает :except => { :no_release => true } — это говорит «Пропустить эту задачу на серверах (ролях), которые :no_release определены как true » .

 role :app, "your app-server here"
role :web, "your web-server here", :no_release => true
role :db,  "your db-server here", :primary => true
 

 desc "restart passenger"
task :restart, :except => { :no_release => true } do
  run "touch #{current_path}/tmp/restart.txt"
end
 

В приведенном выше примере операция перезапуска не должна выполняться на веб-сервере. Опять же, это не проверено… просто исходя из моих наблюдений.