4

Capistrano 3 を使用して PHP アプリケーションをデプロイしたいと考えています。私のアプリケーションは、フレームワークとして Symfony 2 を使用し、構築されたシステムとして Phing を使用しています。capistrano-symfonyをインストールしたので、Capistrano 内から Symfony コマンドを使用できます。

問題は、展開フローも変更されたことです。具体的には、ここに 2 つのタスクを追加します。

https://github.com/capistrano/symfony/blob/master/lib/capistrano/tasks/symfony.rake

  after "deploy:updated", "deploy:clear_controllers"
  after "deploy:updated", "deploy:assets:install"

これらのフックをフローから再度削除する方法はありますか? これらのアクションは、私の Phing ビルド スクリプト (Capistrano によって呼び出される) によって既に実行されています。それらを再度実行する必要はありません。

4

2 に答える 2

8

最後に、部分的にそれを理解しました。名前付きフックは削除できますがbefore、ブロックの前または後のフックは削除できません (Rake 内でブロックに変換されるため)。これを私のに追加しましたdeploy.rb

Rake::Task['deploy:updated'].prerequisites.delete('composer:install')

フックは必要ないことがわかったafterので、単純にクリアしました。

Rake::Task['deploy:updated'].actions.clear()

私がまだ理解できない唯一のことは、特定のafterフックをクリアする方法です。それらは最終的にブロック (つまり無名関数) になるからです。

于 2014-03-31T07:17:36.750 に答える
2

タスク自体をクリアすることができます。

Rake::Task["deploy:clear_controllers"].clear

このようにして、アクションは引き続き呼び出されますが、効果はありません。

于 2017-03-19T20:38:55.350 に答える