从Capistrano回调中的父任务继承角色

时间:2011-08-04 00:01:51

标签: capistrano

我有几个任务,都必须检查作为角色的机器是否具有某些具有特定内容的文件。将逻辑分离为先决条件或回调是合理的。

task t1, :roles => [:r1] do
  ...
end

task t2, :roles => [:r2,:r3] do
  ...
end

before <what?> do
  # must only run on :r1 when triggered by t1,
  # and only on :r2 and :r3 when triggered by t2!
  <ensure role given to parent task has a given file>
end

我们如何在卡皮斯特拉诺做到这一点?

1 个答案:

答案 0 :(得分:0)

事实证明,之前的回调可以调用常规def,在这种情况下,它会运行父任务的角色。但是,如果您在那里调用任务,并且该任务没有任何角色,则将使用所有角色来运行它。真正的问题是跨任务的依赖性在哪里......