Its showing me this error when I try to deploy it on staging my rails verison is Rails 6.1.4.4 and capistrano gem version is 3.11.0 Ruby version is 3.0.4. It breaks everytime at deploy:check:linked_dirs . Not sure what causing it .
bundler: failed to load command: cap (/Users/invozone-guest/.rbenv/versions/3.0.4/bin/cap)
/Users/invozone-guest/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/i18n-1.12.0/lib/i18n.rb:210:in `translate': wrong number of arguments (given 2, expected 0..1) (ArgumentError)
deploy.rb file
# config valid for current version and patch releases of Capistrano
lock "~> 3.11.0"
set :application, 'spree_demo'
set :repo_url, '[email protected]:freshprep_devs/spree_demo.git'
set :branch, 'master'
set :rbenv_type, :system
set :rbenv_ruby, '3.0.4'
set :rbenv_custom_path, '/home/deploy/.rbenv/'
# Default branch is :master
ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call
set :use_sudo, true
# Default value for :pty is false
set :pty, true
task :sake do
on roles(:app), in: :sequence, wait: 5 do
within release_path do
as :deploy do
with rails_env: :staging do
execute :rake, ENV['task'], "RAILS_ENV=staging"
end
end
end
end
end
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
# execute :touch, release_path.join('tmp/restart.txt')
execute 'sudo', '/etc/init.d/spree', 'restart'
end
end
after :publishing, :restart
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
my staging.rb file
role :app, %w{34.95.59.175}
role :web, %w{34.95.59.175}
role :db, %w{34.95.59.175}
server '34.95.59.175', user: 'deploy', roles: %w{web app}
set :rbenv_custom_path, '/home/deploy/.rbenv'
set :deploy_to, '/home/deploy/apps/spree_demo'
Upgrade your Capistrano version to be greater than 3.14.1.
Seems like it is an issue with Ruby 3 and Capistrano versions below 3.14.1
https://github.com/capistrano/capistrano/issues/2091
I upgraded to 3.17.2 and I was able to deploy using Ruby 3.0 successfully.