0

capfiles を書き始めたばかりで、大量の重複したコードを見ているため、Capistrano で何かが欠けているに違いありません。このことを考慮

role :dev, "dev1", "dev2"
role :prod, "prod1", "prod2"

desc "Deploy the app in dev"
task :deploy_dev, :roles => :dev do
    run "sudo install-stuff"
end

desc "Deploy the app in prod"
task :deploy_prod, :roles => :prod do
    run "sudo install-stuff"
end

IMO dev または prod でまったく同じタスクを実行することは完全に合理的ですが、私が知る限り、Capistrano は異なるノードを指定するためだけに 2 つのタスクを作成する必要があります...

のように CLI でロールを参照できた場合のようです

cap deploy dev
cap deploy prod

サーバーのセットごとに重複した定義ではなく、capfile に「展開」タスクの単一の定義が存在する可能性があります。

タスクを一度書いて、役割を動的に指定する方法はありますか?

4

1 に答える 1

2

多段拡張を見てください。必要なタスクを自分で設定するのはかなり簡単ですが、マルチステージ拡張機能がすべてを行ってくれます。

自分でやりたい場合は、ハンドブックの通話タスクのセクションを参照してください。コツは、コマンド ラインからさまざまなタスクを順番に呼び出すことができることです。

于 2013-10-03T21:48:36.010 に答える