2020-10-23 17:59:08 +03:00
|
|
|
#!/bin/bash -e -o pipefail
|
2023-11-28 02:25:03 +01:00
|
|
|
################################################################################
|
|
|
|
|
## File: install-ruby.sh
|
|
|
|
|
## Desc: Install Ruby
|
|
|
|
|
################################################################################
|
|
|
|
|
|
2020-09-21 09:46:17 +03:00
|
|
|
source ~/utils/utils.sh
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2023-05-12 13:30:13 +02:00
|
|
|
arch=$(get_arch)
|
2021-09-10 14:41:17 +03:00
|
|
|
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
|
2024-01-09 14:47:31 +01:00
|
|
|
echo "Installing Ruby..."
|
2021-09-10 14:41:17 +03:00
|
|
|
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
|
2023-05-12 13:30:13 +02:00
|
|
|
if [[ $arch == "arm64" ]]; then
|
|
|
|
|
export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
|
|
|
|
else
|
|
|
|
|
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
|
|
|
|
fi
|
|
|
|
|
|
2024-01-09 14:47:31 +01:00
|
|
|
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}')
|
|
|
|
|
echo "GEM_PATH=$GEM_PATH" >> $HOME/.bashrc
|
2023-05-12 13:30:13 +02:00
|
|
|
if [[ $arch == "arm64" ]]; then
|
2024-01-09 14:47:31 +01:00
|
|
|
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
|
2023-05-12 13:30:13 +02:00
|
|
|
else
|
2024-01-09 14:47:31 +01:00
|
|
|
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
|
2023-05-05 08:38:29 +02:00
|
|
|
fi
|
2020-11-27 10:53:17 +03:00
|
|
|
|
2023-11-10 18:53:24 +01:00
|
|
|
if ! is_Arm64; then
|
2023-05-12 13:30:13 +02:00
|
|
|
echo "Install Ruby from toolset..."
|
|
|
|
|
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
2023-08-01 15:42:44 +02:00
|
|
|
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
2023-07-28 12:37:00 +02:00
|
|
|
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
|
2024-01-09 14:47:31 +01:00
|
|
|
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
|
2020-11-27 10:53:17 +03:00
|
|
|
|
2023-05-12 13:30:13 +02:00
|
|
|
echo "Check if Ruby hostedtoolcache folder exists..."
|
2024-01-09 14:47:31 +01:00
|
|
|
if [[ ! -d $RUBY_PATH ]]; then
|
2023-05-12 13:30:13 +02:00
|
|
|
mkdir -p $RUBY_PATH
|
2023-05-05 08:38:29 +02:00
|
|
|
fi
|
2024-01-09 14:47:31 +01:00
|
|
|
echo "ruby path - $RUBY_PATH "
|
2023-05-12 13:30:13 +02:00
|
|
|
for TOOLSET_VERSION in ${TOOLSET_VERSIONS[@]}; do
|
|
|
|
|
PACKAGE_TAR_NAME=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${TOOLSET_VERSION}-macos-latest.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1)
|
|
|
|
|
RUBY_VERSION=$(echo "$PACKAGE_TAR_NAME" | cut -d'-' -f 2)
|
|
|
|
|
RUBY_VERSION_PATH="$RUBY_PATH/$RUBY_VERSION"
|
|
|
|
|
|
|
|
|
|
echo "Create Ruby $RUBY_VERSION directory..."
|
|
|
|
|
mkdir -p $RUBY_VERSION_PATH
|
|
|
|
|
|
|
|
|
|
echo "Downloading tar archive $PACKAGE_TAR_NAME"
|
2023-11-30 13:39:32 +01:00
|
|
|
ARCHIVE_PATH=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${PACKAGE_TAR_NAME}")
|
2023-05-12 13:30:13 +02:00
|
|
|
|
2024-01-09 14:47:31 +01:00
|
|
|
echo "Expand $PACKAGE_TAR_NAME to the $RUBY_VERSION_PATH folder"
|
|
|
|
|
tar xf $ARCHIVE_PATH -C $RUBY_VERSION_PATH
|
|
|
|
|
COMPLETE_FILE_PATH=$RUBY_VERSION_PATH/x64.complete
|
|
|
|
|
if [[ ! -f $COMPLETE_FILE_PATH ]]; then
|
2023-05-12 13:30:13 +02:00
|
|
|
echo "Create complete file"
|
|
|
|
|
touch $COMPLETE_FILE_PATH
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|
2023-11-28 02:25:03 +01:00
|
|
|
|
2023-05-12 13:30:13 +02:00
|
|
|
invoke_tests "Ruby.$arch"
|