# config valid only for current version of Capistrano lock '3.6.0' set :application, 'registration' set :repo_url, 'https://github.com/snake66/norsk-urskog-registrations.git' set :deploy_to, '/usr/home/norskurskog/www/registration' set :linked_files, fetch(:linked_files, []).push('config.yml') # Default value for linked_dirs is [] set :linked_dirs, fetch(:linked_dirs, []).push('public/uploads', 'bin', 'log', 'tmp') set :bundle_binstubs, -> { shared_path.join('bin') } # Default value for default_env is {} # set :default_env, { path: "/opt/ruby/bin:$PATH" } # Default value for keep_releases is 5 # set :keep_releases, 5 namespace :deploy do file 'config.yml' do |f| template = "---\n" + "contact_email: contact@example.com\n" + "smtp:\n" + " address: localhost\n" + " port: 25\n" + "accept_registrations:\n" + " start: YYYY.MM.DD\n" + " stop: YYYY.MM.DD\n" IO.write(t.name, template) end before 'check:linked_files', :upload_config => 'config.yml' do |t| on roles(:app) do target_file = File.join(fetch(:deploy_to), 'shared', t.prerequisites.first) unless test("[ -f #{target_file} ]") upload!(t.prerequisites.first, target_file) end end end after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do # Here we can do anything such as: # within release_path do # execute :rake, 'cache:clear' # end end end end