namespace :env do desc <<-DESC Upload env file to the server You can override any of these defaults by setting the variables shown below. set :env_file, ".env" set :env_roles, :all set :target_file, -> { shared_path.join('.env') } DESC task :upload do on roles(fetch(:env_roles)) do upload! fetch(:env_file), fetch(:env_target) end end desc <<-DESC Symlink the .env file to the release_path DESC task :symlink do on roles(fetch(:env_roles)) do execute :ln, '-sf', fetch(:env_target), release_path.join('.env') end end end namespace :load do task :defaults do set :env_file, ".env" set :env_roles, :all set :env_target, -> { shared_path.join('.env') } end end namespace :deploy do after :updating, 'env:symlink' end