Как я могу установить параметр bundle_without в зависимости от роли? - PullRequest
0 голосов
/ 12 февраля 2020

Я не хочу устанавливать определенный гем в указанных c хостах. Как я могу добиться этого?

версии:

Ruby 2.5.3
Capistrano 3.7.1
Capistrano-bundler  1.2.0

Я попытался с помощью приведенного ниже кода указать параметр without в зависимости от роли, но, похоже, он указан и для других хостов.

Gemfile.rb

group :foo do
  gem 'foo'
end

deploy.rb

role :app, %w(huga.com)

task :without_foo do
  on roles(:app) do
    set :bundle_without, %w{development test foo}.join(' ')
  end
end
before 'bundler:install', :without_foo

результаты ( bundle --without тест разработки foo выполняется и для другого хоста )

...
** Invoke deploy:updated (first_time)
** Invoke bundler:install (first_time)
** Invoke without_foo (first_time)
** Execute without_foo
** Execute bundler:install
00:21 bundler:install
      01 /usr/local/rvm/bin/rvm 2.5.3@my_app_staging do bundle install --path /var/www/staging/my_app/shared/bundle --without development test foo --deployment --quiet
    ✔ 01 me@huga.com 2.071s
    ✔ 01 me@huga2.com 2.007s
...
...