1

ステージング スクリプトと本番デプロイ スクリプトの間でいくつかの共有タスクがあります。共有タスクを作成するベスト プラクティスは何ですか? /lib/capistrano/tasksたとえば、それらを別のファイルに移動する必要がありますか? もしそうなら、どうすればいいですか?ファイル拡張子とは何か、また、これらのタスクに名前を付けてcapコマンドからアクセスする方法を教えてください。

4

1 に答える 1

2

Capistrano の典型的なマルチステージ構成には、次のファイルがあります。

  • Capfile
  • config/deploy.rb
  • config/deploy/staging.rb
  • config/deploy/production.rb

staging.rbこれらの環境に配置された、またはproduction.rbそれらの環境でのみ使用できるタスク。

任意の環境からアクセスできるタスクが必要な場合は、それらを に配置できますconfig/deploy.rb

それらを別のファイルに抽出したい場合は、あなたが言ったように、lib/capistrano/tasks/*.rake. (通常、Capfileこれらのタスクをロードする行を a に含める必要があります。)

たとえば、unicorn:restartUnicorn を再起動するカスタマイズされたタスクがあります。というファイルを作成しlib/capistrano/tasks/unicorn.rake、次のファイルを追加できます。

namespace :unicorn do
  desc "Restart Unicorn"
  task :restart do
    # ...
  end
end

編集

次の行を に追加してCapfile、共有タスクを の下にロードできますlib/capistrano/tasks/*.rake

# Load custom tasks from `lib/capistrano/tasks' if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
于 2015-01-31T18:07:29.390 に答える