From 69cba4ffad425e082f36d8fee3101090ccda896c Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Fri, 1 Jul 2022 11:12:10 -0700 Subject: [PATCH] ruby: install additional versions (#57) * ruby: install additional versions * nit: fixing spelling Co-authored-by: Josh Spicer --- src/ruby/devcontainer-feature.json | 4 ---- src/ruby/install.sh | 18 ++++++++++++++++++ test-scenarios/install_additional_ruby.sh | 13 +++++++++++++ test-scenarios/scenarios.json | 9 +++++++++ 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 test-scenarios/install_additional_ruby.sh diff --git a/src/ruby/devcontainer-feature.json b/src/ruby/devcontainer-feature.json index 56ce1e1..7b98028 100644 --- a/src/ruby/devcontainer-feature.json +++ b/src/ruby/devcontainer-feature.json @@ -24,9 +24,5 @@ "GEM_HOME": "/usr/local/rvm/gems/default", "MY_RUBY_HOME": "/usr/local/rvm/rubies/default", "PATH": "/usr/local/rvm/gems/default/bin:/usr/local/rvm/gems/default@global/bin:/usr/local/rvm/rubies/default/bin:${PATH}" - }, - "install": { - "app": "", - "file": "install.sh" } } \ No newline at end of file diff --git a/src/ruby/install.sh b/src/ruby/install.sh index 4191023..4920287 100644 --- a/src/ruby/install.sh +++ b/src/ruby/install.sh @@ -13,6 +13,10 @@ USERNAME=${USERNAME:-"automatic"} UPDATE_RC=${UPDATE_RC:-"true"} INSTALL_RUBY_TOOLS=${INSTALL_RUBY_TOOLS:-"true"} +# Comma-separated list of ruby versions to be installed (with rvm) +# alongside RUBY_VERSION, but not set as default. +ADDITIONAL_VERSIONS=${ADDITIONAL_VERSIONS:-""} + # Note: ruby-debug-ide will install the right version of debase if missing and # installing debase directly fails on Ruby 3.1.0 as of 1/7/2022, so omitting. DEFAULT_GEMS="rake ruby-debug-ide" @@ -239,6 +243,20 @@ fi # VS Code server usually first in the path, so silence annoying rvm warning (that does not apply) and then source it updaterc "if ! grep rvm_silence_path_mismatch_check_flag \$HOME/.rvmrc > /dev/null 2>&1; then echo 'rvm_silence_path_mismatch_check_flag=1' >> \$HOME/.rvmrc; fi\nsource /usr/local/rvm/scripts/rvm > /dev/null 2>&1" +# Additional ruby versions to be installed but not be set as default. +if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then + OLDIFS=$IFS + IFS="," + read -a additional_versions <<< "$ADDITIONAL_VERSIONS" + for version in "${additional_versions[@]}"; do + # Figure out correct version of a three part version number is not passed + find_version_from_git_tags version "https://github.com/ruby/ruby" "tags/v" "_" + source /usr/local/rvm/scripts/rvm + rvm install ruby ${version} + done + IFS=$OLDIFS +fi + # Install rbenv/ruby-build for good measure if [ "${SKIP_RBENV_RBUILD}" != "true" ]; then diff --git a/test-scenarios/install_additional_ruby.sh b/test-scenarios/install_additional_ruby.sh new file mode 100644 index 0000000..3e76159 --- /dev/null +++ b/test-scenarios/install_additional_ruby.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "ruby version 3.1.2 installed as default" ruby -v | grep 3.1.2 +check "ruby version 2.5.9 installed" rvm list | grep 2.5.9 +check "ruby version 3.0.4 installed" rvm list | grep 3.0.4 + +# Report result +reportResults diff --git a/test-scenarios/scenarios.json b/test-scenarios/scenarios.json index d07dda9..7c51282 100644 --- a/test-scenarios/scenarios.json +++ b/test-scenarios/scenarios.json @@ -11,5 +11,14 @@ "configure_jupyterlab_allow_origin": "*" } } + }, + "install_additional_ruby": { + "image": "ubuntu:focal", + "features": { + "ruby": { + "version": "3.1.2", + "additional_versions": "2.5,3.0.4" + } + } } } \ No newline at end of file