2014-01-29 69 views
1

Quick Capistrano 3問題。針對不同環境的不同行爲

我正在使用Capistrano將CMS部署到臨時環境,然後部署到生產環境。

我需要上傳一個帶有數據庫信息的配置文件,使用CMS以外的git倉庫。

有兩個配置文件staging-config和production-config。

我如何獲得Capistrano上傳文件或基於目標執行任務?

task :upload_config do 
    on roles(:all) do |host| 
     within fetch(:shared_path) do 
      upload! 'staging-config.php', "#{fetch :shared_path}/staging-config.php" 
     end 
    end 
end 

回答

1

您可以隨時使用if..elseif..end如下:

if fetch(:stage) == :production 
... 
elsif fetch(:stage) == :staging 
... 
end 

或者,如果你有分期和唯一的生產:

task :upload_config do 
    on roles(:all) do |host| 
     within fetch(:shared_path) do 
      upload! "#{fetch(:stage).to_s}-config.php", "#{fetch :shared_path}/#{fetch(:stage).to_s}-config.php" 
     end 
    end 
end 
+0

輝煌,它是存在:舞臺變量i不知道 – Stewarty

相關問題