Mina plugin with tasks for version managers, including rbenv, chruby, rvm, and ry.
Add this line to your application's Gemfile:
gem 'mina-version_managers'And then execute:
$ bundle install
Or install it yourself as:
$ gem install mina-version_managers
The following sections explain how to use tasks for each version manager.
Require chruby tasks:
# config/deploy.rb
require 'mina/version_managers/chruby'This will load three tasks: chruby:load, chruby:set, and chruby.
Loads the chruby environment from the given path (default path is /etc/profile.d/chruby.sh). You can also override it:
# config/deploy.rb
set :chruby_path, 'mypath/chruby.sh'See chruby docs for path details.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'chruby:load'
end
endSets current Ruby version, which must be provided as an argument.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'chruby:set', '3.0.0' # sets current Ruby version to 3.0.0
end
endConvenience task which invokes chruby:load and chruby:set. Ruby version must be provided as an argument.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :chruby, '3.0.0' # loads chruby environment and sets current Ruby version to 3.0.0
end
endRequire rbenv task:
# config/deploy.rb
require 'mina/version_managers/rbenv'This will load a single task: rbenv:load.
Adds rbenv root path to the PATH environment variable, and executes rbenv init. Default rbenv root path is $HOME/.rbenv, but you can override it:
# config/deploy.rb
set :rbenv_path, 'mypath/.rbenv'Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'rbenv:load'
end
endRequire RVM tasks:
# config/deploy.rb
require 'mina/version_managers/rvm'This will load three tasks: rvm:load, rvm:use, and rvm:wrapper.
Loads RVM from the given path. Default path is $HOME/.rvm/scripts/rvm, but it can be overriden:
# config/deploy.rb
set :rvm_use_path, 'mypath'Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'rvm:load'
end
endLoads RVM (by invoking rvm:load) and sets current Ruby version, which should be provided as an argument.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'rvm:use', '3.0.0' # loads RVM and changes current Ruby version to 3.0.0
end
endCreates an RVM wrapper for the given environment and binary which will be wrapped.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
# creates a wrapper called `myapp` for the binary `unicorn_rails` in the environment `3.0.0`
invoke :'rvm:wrapper', '3.0.0', 'myapp', 'unicorn_rails'
end
endRequire ry tasks:
# config/deploy.rb
require 'mina/version_managers/ry'This will load three tasks: ry:load, ry:use and ry.
Adds ry path to the PATH environment variable, and executes ry setup. Default ry path is $HOME/.local, but you can override it:
# config/deploy.rb
set :ry_path, 'mypath/.local'Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'ry:load'
end
endSets current Ruby version, which can be provided as an argument. If you don't provide a version, the default Ruby version will be used.
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :'ry:use', '3.0.0' # or don't set a param if you want to use the default version
end
endConvenience task which invokes ry:load and ry:use. Ruby version can be provided as an argument or left blank to use the default version (same as ry:use).
Example usage:
# config/deploy.rb
task :deploy do
deploy do
invoke :ry, '3.0.0'
end
endAfter checking out the repo, run bin/setup to install dependencies. Then, run bundle exec rspec to run the tests.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/mina-deploy/mina-version_managers. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Mina::VersionManagers project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.