快速Capistrano 3问题。
我正在使用Capistrano将CMS部署到暂存环境,然后再投入生产。
我需要上传一个包含数据库信息的配置文件,其中CMS位于git repo之外。
有两个配置文件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
答案 0 :(得分: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