mirror of
https://github.com/actions/runner-images.git
synced 2025-12-10 19:16:48 +00:00
[macOS] Refactor the rest of the scripts (#9113)
* [macOS] Refactor the rest of the scripts * Return quotes to config tccdb script * Return quotes to config tccdb script * Revert some changes in ruby scripts * Revert some changes in ruby scripts * Revert some changes chrome script * check errors * check errors 01 * find errors in common-utils * find errors in edge install * find errors in edge install --------- Co-authored-by: Alexey Ayupov <“alexey.ayupov@akvelon.com”>
This commit is contained in:
@@ -11,7 +11,7 @@ LICENSE_BLOCK
|
||||
USERNAME="${1}"
|
||||
PW="${2}"
|
||||
|
||||
function kcpasswordEncode {
|
||||
kcpasswordEncode() {
|
||||
#ascii string
|
||||
local thisString="${1}"
|
||||
local i
|
||||
|
||||
@@ -23,7 +23,7 @@ change_framework_version() {
|
||||
echo "Select $framework $version"
|
||||
|
||||
local countDigit=$(echo "${version}" | grep -o "\." | grep -c "\.")
|
||||
|
||||
|
||||
if [[ countDigit -gt 1 ]]; then
|
||||
echo "[WARNING] It is not recommended to specify the exact framework version because your build can be broken with the next patch update. Consider using "major.minor" only format."
|
||||
fi
|
||||
@@ -31,7 +31,7 @@ change_framework_version() {
|
||||
local framework_path=$(get_framework_path "$framework")
|
||||
|
||||
if [ -d "${framework_path}/${version}" ]; then
|
||||
sudo rm -f "${framework_path}/Current"
|
||||
sudo rm -f ${framework_path}/Current
|
||||
sudo ln -s "${framework_path}/${version}" "${framework_path}/Current"
|
||||
else
|
||||
echo "Invalid framework version ${framework_path}/${version}"
|
||||
@@ -46,7 +46,7 @@ for arg in "$@"; do
|
||||
case $key in
|
||||
--mono | --ios | --android | --mac) change_framework_version $key $value ;;
|
||||
*)
|
||||
echo "Invalid parameter <${key}>"
|
||||
echo "Invalid parameter <${key}>"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -14,7 +14,7 @@ scutil --set LocalHostName $name
|
||||
scutil --set ComputerName "${name}.local"
|
||||
EOF
|
||||
|
||||
chmod +x "/usr/local/bin/change_hostname.sh"
|
||||
chmod +x /usr/local/bin/change_hostname.sh
|
||||
|
||||
sudo tee -a /Library/LaunchDaemons/change_hostname.plist > /dev/null <<\EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
@@ -22,7 +22,7 @@ if is_Veertu; then
|
||||
fi
|
||||
|
||||
# Change screen resolution to the maximum supported for 4Mb video memory
|
||||
if [ -d "/Library/Application Support/VMware Tools" ]; then
|
||||
if [[ -d "/Library/Application Support/VMware Tools" ]]; then
|
||||
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
|
||||
fi
|
||||
|
||||
@@ -60,7 +60,7 @@ rm -f ./add-certificate
|
||||
# enable-automationmode-without-authentication
|
||||
if ! is_BigSur; then
|
||||
retry=10
|
||||
while [ $retry -gt 0 ]; do
|
||||
while [[ $retry -gt 0 ]]; do
|
||||
{
|
||||
osascript <<EOF
|
||||
tell application "Terminal"
|
||||
@@ -77,7 +77,7 @@ EOF
|
||||
} && break
|
||||
|
||||
retry=$((retry-1))
|
||||
if [ $retry -eq 0 ]; then
|
||||
if [[ $retry -eq 0 ]]; then
|
||||
echo "No retry attempts left"
|
||||
exit 1
|
||||
fi
|
||||
@@ -97,7 +97,7 @@ done
|
||||
fi
|
||||
|
||||
# Create symlink for tests running
|
||||
if [ ! -d "/usr/local/bin" ];then
|
||||
if [[ ! -d "/usr/local/bin" ]];then
|
||||
sudo mkdir -p -m 775 /usr/local/bin
|
||||
sudo chown $USER:admin /usr/local/bin
|
||||
fi
|
||||
|
||||
@@ -8,7 +8,7 @@ Launch_Daemons="/Library/LaunchDaemons"
|
||||
|
||||
# EOF in quotes to disable variable expansion
|
||||
echo "Creating limit.maxfiles.plist"
|
||||
cat > "${Launch_Daemons}/limit.maxfiles.plist" << EOF
|
||||
cat > ${Launch_Daemons}/limit.maxfiles.plist << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
@@ -28,17 +28,17 @@ EOF
|
||||
|
||||
# Creating script for applying workaround https://developer.apple.com/forums/thread/735798
|
||||
|
||||
cat > "/Users/runner/limit-maxfiles.sh" << EOF
|
||||
cat > /Users/runner/limit-maxfiles.sh << EOF
|
||||
#!/bin/bash
|
||||
sudo launchctl limit maxfiles 256 unlimited
|
||||
sudo launchctl limit maxfiles 65536 524288
|
||||
EOF
|
||||
|
||||
echo "limit.maxfiles.sh permissions changing"
|
||||
chmod +x "/Users/runner/limit-maxfiles.sh"
|
||||
chmod +x /Users/runner/limit-maxfiles.sh
|
||||
|
||||
echo "limit.maxfiles.plist permissions changing"
|
||||
chown root:wheel "${Launch_Daemons}/limit.maxfiles.plist"
|
||||
chmod 0644 "${Launch_Daemons}/limit.maxfiles.plist"
|
||||
chmod 0644 ${Launch_Daemons}/limit.maxfiles.plist
|
||||
|
||||
echo "Done, limit.maxfiles has been updated"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
################################################################################
|
||||
|
||||
PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist
|
||||
cat <<EOF > "${PLIST}"
|
||||
cat <<EOF > ${PLIST}
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
@@ -27,8 +27,8 @@ EOF
|
||||
|
||||
# These should be already set as follows, but since they're required
|
||||
# in order to load properly, we set them explicitly.
|
||||
/bin/chmod 644 "${PLIST}"
|
||||
/usr/sbin/chown root:wheel "${PLIST}"
|
||||
/bin/chmod 644 ${PLIST}
|
||||
/usr/sbin/chown root:wheel ${PLIST}
|
||||
|
||||
: '
|
||||
The MIT License (MIT)
|
||||
|
||||
@@ -15,5 +15,5 @@ server time.windows.com
|
||||
EOF
|
||||
|
||||
# Set the timezone to UTC.
|
||||
echo The Timezone setting to UTC...
|
||||
echo "The Timezone setting to UTC..."
|
||||
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
# set screensaver idleTime to 0, to prevent turning screensaver on
|
||||
macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
|
||||
macUUID=$(ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62)
|
||||
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist
|
||||
|
||||
@@ -22,13 +22,13 @@ while [[ $retry -gt 0 ]]; do
|
||||
fi
|
||||
sleep 30
|
||||
done
|
||||
IFS=',' read -r -a windowslist <<< "$openwindows"
|
||||
IFS=',' read -r -a windowslist <<< $openwindows
|
||||
|
||||
if [ -n "${openwindows}" ]; then
|
||||
if [[ -n ${openwindows} ]]; then
|
||||
echo "Found opened window:"
|
||||
fi
|
||||
|
||||
for window in "${windowslist[@]}"; do
|
||||
for window in ${windowslist[@]}; do
|
||||
if [[ $window =~ "NotificationCenter" ]]; then
|
||||
echo "[Warning] $window"
|
||||
else
|
||||
@@ -37,6 +37,6 @@ for window in "${windowslist[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${scripterror}" = true ]; then
|
||||
if [[ ${scripterror} = true ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: configure-xcode-symlinks.sh
|
||||
## Desc: Link the existing Xcodes into the correct location for provisionator.
|
||||
## This is maintained for backwards compatibility only. Do not add new xcodes here.
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
ln -sf /Applications/Xcode_8.app /Applications/Xcode8.app
|
||||
ln -sf /Applications/Xcode_8.1.app /Applications/Xcode81.app
|
||||
ln -sf /Applications/Xcode_9.app /Applications/Xcode9.app
|
||||
ln -sf /Applications/Xcode_9.1.app /Applications/Xcode91.app
|
||||
ln -sf /Applications/Xcode_9.2.app /Applications/Xcode92.app
|
||||
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode93.app
|
||||
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode_9.3_beta.app
|
||||
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4-beta.app
|
||||
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta.app
|
||||
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta_2.app
|
||||
@@ -13,15 +13,14 @@ DEFAULT_XCODE_VERSION=$(get_toolset_value '.xcode.default')
|
||||
# Assets.xcassets : error : CoreData: error: (6922) I/O error for database
|
||||
# at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID}
|
||||
echo "Erase a device's contents and settings:"
|
||||
for XCODE_VERSION in "${XCODE_LIST[@]}"
|
||||
do
|
||||
for XCODE_VERSION in ${XCODE_LIST[@]}; do
|
||||
echo " Xcode Version: ${XCODE_VERSION}"
|
||||
launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
|
||||
#add sleep to let CoreSimulatorService to exit
|
||||
sleep 3
|
||||
|
||||
# Select xcode version by default
|
||||
sudo xcode-select -s "/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer"
|
||||
sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer
|
||||
|
||||
# Erase a device's contents and settings
|
||||
xcrun simctl erase all
|
||||
@@ -32,4 +31,4 @@ done
|
||||
|
||||
# Select xcode version by default
|
||||
echo "Setting Xcode ${DEFAULT_XCODE_VERSION} as default"
|
||||
sudo xcode-select -s "/Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer"
|
||||
sudo xcode-select -s /Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Check if ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE folder exist..."
|
||||
if [ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]; then
|
||||
if [[ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]]; then
|
||||
mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
|
||||
fi
|
||||
|
||||
download_url=$(resolve_github_release_asset_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest")
|
||||
echo "Downloading action-versions $download_url"
|
||||
archive_path=$(download_with_retry "$download_url")
|
||||
tar -xzf "$archive_path" -C "$ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE"
|
||||
archive_path=$(download_with_retry $download_url)
|
||||
tar -xzf $archive_path -C $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
|
||||
|
||||
invoke_tests "ActionArchiveCache"
|
||||
|
||||
@@ -6,39 +6,37 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
function filter_components_by_version {
|
||||
minimumVersion=$1
|
||||
add_filtered_instalaltion_components() {
|
||||
local minimum_version=$1
|
||||
shift
|
||||
toolsArr=("$@")
|
||||
local tools_array=("$@")
|
||||
|
||||
for item in ${toolsArr[@]}
|
||||
do
|
||||
for item in ${tools_array[@]}; do
|
||||
# take the last argument after spliting string by ';'' and '-''
|
||||
version=$(echo "${item##*[-;]}")
|
||||
if verlte $minimumVersion $version
|
||||
then
|
||||
if [[ "$(printf "${minimum_version}\n${version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then
|
||||
components+=($item)
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function get_full_ndk_version {
|
||||
majorVersion=$1
|
||||
ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
|
||||
get_full_ndk_version() {
|
||||
local majorVersion=$1
|
||||
|
||||
ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
|
||||
echo "$ndkVersion"
|
||||
}
|
||||
|
||||
components=()
|
||||
|
||||
ANDROID_PLATFORM=$(get_toolset_value '.android.platform_min_version')
|
||||
ANDROID_BUILD_TOOL=$(get_toolset_value '.android.build_tools_min_version')
|
||||
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extras"[]'))
|
||||
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addons"[]'))
|
||||
ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional_tools"[]'))
|
||||
ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]'))
|
||||
ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
|
||||
ANDROID_NDK_MAJOR_LATEST=$(get_toolset_value '.android.ndk."versions"[-1]')
|
||||
android_platform=$(get_toolset_value '.android.platform_min_version')
|
||||
android_build_tool=$(get_toolset_value '.android.build_tools_min_version')
|
||||
android_extra_list=($(get_toolset_value '.android."extras"[]'))
|
||||
android_addon_list=($(get_toolset_value '.android."addons"[]'))
|
||||
android_additional_tools=($(get_toolset_value '.android."additional_tools"[]'))
|
||||
android_ndk_major_versions=($(get_toolset_value '.android.ndk."versions"[]'))
|
||||
android_ndk_major_default=$(get_toolset_value '.android.ndk.default')
|
||||
android_ndk_major_latest=$(get_toolset_value '.android.ndk."versions"[-1]')
|
||||
# Get the latest command line tools from https://developer.android.com/studio#cmdline-tools
|
||||
# Newer version(s) require Java 11 by default
|
||||
# See https://github.com/actions/runner-images/issues/6960
|
||||
@@ -81,15 +79,15 @@ echo "Installing latest tools & platform tools..."
|
||||
echo y | $SDKMANAGER "tools" "platform-tools"
|
||||
|
||||
echo "Installing latest ndk..."
|
||||
for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
|
||||
for ndk_version in "${android_ndk_major_versions[@]}"
|
||||
do
|
||||
ndk_full_version=$(get_full_ndk_version $ndk_version)
|
||||
echo y | $SDKMANAGER "ndk;$ndk_full_version"
|
||||
done
|
||||
|
||||
ndkDefault=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
|
||||
ndkDefault=$(get_full_ndk_version $android_ndk_major_default)
|
||||
ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$ndkDefault
|
||||
ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
|
||||
ndkLatest=$(get_full_ndk_version $android_ndk_major_latest)
|
||||
ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest
|
||||
# ANDROID_NDK, ANDROID_NDK_HOME, and ANDROID_NDK_ROOT variables should be set as many customer builds depend on them https://github.com/actions/runner-images/issues/5879
|
||||
echo "export ANDROID_NDK=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
|
||||
@@ -98,27 +96,27 @@ echo "export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
|
||||
echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc"
|
||||
|
||||
availablePlatforms=($($SDKMANAGER --list | grep "platforms;android-[0-9]" | cut -d"|" -f 1 | sort -u))
|
||||
filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
|
||||
add_filtered_instalaltion_components $android_platform "${availablePlatforms[@]}"
|
||||
|
||||
allBuildTools=($($SDKMANAGER --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||
filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
|
||||
add_filtered_instalaltion_components $android_build_tool "${availableBuildTools[@]}"
|
||||
|
||||
echo "y" | $SDKMANAGER ${components[@]}
|
||||
|
||||
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
|
||||
for extra_name in "${android_extra_list[@]}"
|
||||
do
|
||||
echo "Installing extra $extra_name ..."
|
||||
echo y | $SDKMANAGER "extras;$extra_name"
|
||||
done
|
||||
|
||||
for addon_name in "${ANDROID_ADDON_LIST[@]}"
|
||||
for addon_name in "${android_addon_list[@]}"
|
||||
do
|
||||
echo "Installing add-on $addon_name ..."
|
||||
echo y | $SDKMANAGER "add-ons;$addon_name"
|
||||
done
|
||||
|
||||
for tool_name in "${ANDROID_ADDITIONAL_TOOLS[@]}"
|
||||
for tool_name in "${android_additional_tools[@]}"
|
||||
do
|
||||
echo "Installing additional tool $tool_name ..."
|
||||
echo y | $SDKMANAGER "$tool_name"
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing aws...
|
||||
echo "Installing aws..."
|
||||
awscliv2_pkg_path=$(download_with_retry "https://awscli.amazonaws.com/AWSCLIV2.pkg")
|
||||
sudo installer -pkg "$awscliv2_pkg_path" -target /
|
||||
|
||||
echo Installing aws sam cli...
|
||||
echo "Installing aws sam cli..."
|
||||
brew tap aws/tap
|
||||
brew_smart_install aws-sam-cli
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@ else
|
||||
fi
|
||||
|
||||
# Install AzCopy
|
||||
archive_path=$(download_with_retry "${url}")
|
||||
unzip -qq "$archive_path" -d /tmp/azcopy
|
||||
archive_path=$(download_with_retry ${url})
|
||||
unzip -qq $archive_path -d /tmp/azcopy
|
||||
extract_path=$(echo /tmp/azcopy/azcopy*)
|
||||
cp "$extract_path/azcopy" "/usr/local/bin/azcopy"
|
||||
chmod +x "/usr/local/bin/azcopy"
|
||||
cp $extract_path/azcopy /usr/local/bin/azcopy
|
||||
chmod +x /usr/local/bin/azcopy
|
||||
|
||||
|
||||
invoke_tests "Common" "AzCopy"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing bicep cli...
|
||||
echo "Installing bicep cli..."
|
||||
brew tap azure/bicep
|
||||
brew_smart_install bicep
|
||||
|
||||
|
||||
@@ -19,32 +19,32 @@ echo "Google Chrome version is $full_chrome_version"
|
||||
# Get Google Chrome versions information
|
||||
chrome_platform="mac-$arch"
|
||||
CHROME_VERSIONS_URL="https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build-with-downloads.json"
|
||||
chrome_versions_json="$(cat "$(download_with_retry "$CHROME_VERSIONS_URL")")"
|
||||
chrome_versions_json="$(cat $(download_with_retry "$CHROME_VERSIONS_URL"))"
|
||||
|
||||
# Download and unpack the latest release of Chrome Driver
|
||||
chromedriver_version=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
chromedriver_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
echo "Installing Chrome Driver version $chromedriver_version"
|
||||
|
||||
chromedriver_url=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chromedriver_dir="/usr/local/share/chromedriver-${chrome_platform}"
|
||||
chromedriver_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chromedriver_dir="/usr/local/share/chromedriver-$chrome_platform"
|
||||
chromedriver_bin="$chromedriver_dir/chromedriver"
|
||||
|
||||
chromedriver_archive_path=$(download_with_retry "$chromedriver_url")
|
||||
unzip -qq "$chromedriver_archive_path" -d /tmp/
|
||||
sudo mv "/tmp/chromedriver-${chrome_platform}" "$chromedriver_dir"
|
||||
ln -s "$chromedriver_bin" /usr/local/bin/chromedriver
|
||||
echo "export CHROMEWEBDRIVER=$chromedriver_dir" >> "${HOME}/.bashrc"
|
||||
chromedriver_archive_path=$(download_with_retry $chromedriver_url)
|
||||
unzip -qq $chromedriver_archive_path -d /tmp/
|
||||
sudo mv /tmp/chromedriver-$chrome_platform $chromedriver_dir
|
||||
ln -s $chromedriver_bin /usr/local/bin/chromedriver
|
||||
echo "export CHROMEWEBDRIVER=$chromedriver_dir" >> ${HOME}/.bashrc
|
||||
|
||||
# Download and unpack the latest release of Google Chrome for Testing
|
||||
chrome_for_testing_version=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
chrome_for_testing_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
echo "Installing Google Chrome for Testing version $chrome_for_testing_version"
|
||||
|
||||
chrome_for_testing_url=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chrome_for_testing_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chrome_for_testing_app="Google Chrome for Testing.app"
|
||||
|
||||
chrome_for_testing_archive_path=$(download_with_retry "$chrome_for_testing_url")
|
||||
unzip -qq "$chrome_for_testing_archive_path" -d /tmp/
|
||||
mv "/tmp/chrome-${chrome_platform}/${chrome_for_testing_app}" "/Applications/${chrome_for_testing_app}"
|
||||
chrome_for_testing_archive_path=$(download_with_retry $chrome_for_testing_url)
|
||||
unzip -qq $chrome_for_testing_archive_path -d /tmp/
|
||||
mv "/tmp/chrome-$chrome_platform/$chrome_for_testing_app" "/Applications/$chrome_for_testing_app"
|
||||
|
||||
echo "Installing Selenium"
|
||||
brew_smart_install "selenium-server"
|
||||
|
||||
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
|
||||
|
||||
# Retrieve the CLI version of the latest CodeQL bundle.
|
||||
defaults_json_path=$(download_with_retry https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json)
|
||||
bundle_version="$(jq -r '.cliVersion' "$defaults_json_path")"
|
||||
bundle_version=$(jq -r '.cliVersion' $defaults_json_path)
|
||||
bundle_tag_name="codeql-bundle-v$bundle_version"
|
||||
|
||||
echo "Downloading CodeQL bundle $bundle_version..."
|
||||
@@ -16,17 +16,17 @@ echo "Downloading CodeQL bundle $bundle_version..."
|
||||
# different operating systems within containers.
|
||||
archive_path=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle.tar.gz")
|
||||
|
||||
codeql_toolcache_path="$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64"
|
||||
mkdir -p "$codeql_toolcache_path"
|
||||
codeql_toolcache_path=$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64
|
||||
mkdir -p $codeql_toolcache_path
|
||||
|
||||
echo "Unpacking the downloaded CodeQL bundle archive..."
|
||||
tar -xzf "$archive_path" -C "$codeql_toolcache_path"
|
||||
tar -xzf $archive_path -C $codeql_toolcache_path
|
||||
|
||||
# Touch a file to indicate to the CodeQL Action that this bundle shipped with the toolcache. This is
|
||||
# to support overriding the CodeQL version specified in defaults.json on GitHub Enterprise.
|
||||
touch "$codeql_toolcache_path/pinned-version"
|
||||
touch $codeql_toolcache_path/pinned-version
|
||||
|
||||
# Touch a file to indicate to the toolcache that setting up CodeQL is complete.
|
||||
touch "$codeql_toolcache_path.complete"
|
||||
touch $codeql_toolcache_path.complete
|
||||
|
||||
invoke_tests "Common" "CodeQL Bundle"
|
||||
|
||||
@@ -28,9 +28,9 @@ for package in $cask_packages; do
|
||||
# Do not update VirtualBox on macOS 12 due to the issue with VMs in gurumediation state which blocks Vagrant on macOS: https://github.com/actions/runner-images/issues/8730
|
||||
# macOS host: Dropped all kernel extensions. VirtualBox relies fully on the hypervisor and vmnet frameworks provided by Apple now.
|
||||
virtualbox_cask_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-cask/aa3c55951fc9d687acce43e5c0338f42c1ddff7b/Casks/virtualbox.rb")
|
||||
brew install "$virtualbox_cask_path"
|
||||
brew install $virtualbox_cask_path
|
||||
else
|
||||
brew install --cask "$package"
|
||||
brew install --cask $package
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -51,7 +51,7 @@ if is_Monterey; then
|
||||
osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD
|
||||
} && break
|
||||
|
||||
if [[ "$retry" -eq 0 ]]; then
|
||||
if [[ $retry -eq 0 ]]; then
|
||||
echo "Executing AppleScript failed. No retries left"
|
||||
exit 1
|
||||
fi
|
||||
@@ -75,23 +75,20 @@ if is_Monterey; then
|
||||
dbQuery="SELECT * FROM kext_policy WHERE bundle_id LIKE 'com.parallels.kext.%';"
|
||||
kext=$(sudo sqlite3 $dbName "$dbQuery")
|
||||
|
||||
if [[ -z "$kext" ]]; then
|
||||
if [[ -z $kext ]]; then
|
||||
echo "Parallels International GmbH not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create env variable
|
||||
url=$(brew info --json=v2 --installed | jq -r '.casks[] | select(.name[] == "Parallels Desktop").url')
|
||||
if [[ -z "$url" ]]; then
|
||||
if [[ -z $url ]]; then
|
||||
echo "Unable to parse url for Parallels Desktop cask"
|
||||
exit 1
|
||||
fi
|
||||
echo "export PARALLELS_DMG_URL=$url" >> "${HOME}/.bashrc"
|
||||
echo "export PARALLELS_DMG_URL=$url" >> ${HOME}/.bashrc
|
||||
fi
|
||||
|
||||
# Invoke bazel to download bazel version via bazelisk
|
||||
bazel
|
||||
|
||||
# Install Azure DevOps extension for Azure Command Line Interface
|
||||
az extension add -n azure-devops
|
||||
|
||||
|
||||
@@ -13,32 +13,32 @@ arch=$(get_arch)
|
||||
# Download installer from dot.net and keep it locally
|
||||
DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh"
|
||||
install_script_path=$(download_with_retry $DOTNET_INSTALL_SCRIPT)
|
||||
chmod +x "$install_script_path"
|
||||
chmod +x $install_script_path
|
||||
|
||||
args_list=()
|
||||
echo "Parsing dotnet SDK (except rc and preview versions) from .json..."
|
||||
|
||||
dotnet_versions=($(get_toolset_value ".dotnet.arch[\"$arch\"].versions | .[]"))
|
||||
|
||||
for dotnet_version in "${dotnet_versions[@]}"; do
|
||||
for dotnet_version in ${dotnet_versions[@]}; do
|
||||
release_url="https://raw.githubusercontent.com/dotnet/core/main/release-notes/${dotnet_version}/releases.json"
|
||||
releases_json_file=$(download_with_retry "$release_url")
|
||||
|
||||
if [[ $dotnet_version == "6.0" ]]; then
|
||||
args_list+=(
|
||||
$(cat "$releases_json_file" | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))')
|
||||
$(cat $releases_json_file | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))')
|
||||
)
|
||||
else
|
||||
args_list+=(
|
||||
$(cat "$releases_json_file" | \
|
||||
$(cat $releases_json_file | \
|
||||
jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \
|
||||
sort -r | rev | uniq -s 2 | rev)
|
||||
)
|
||||
fi
|
||||
done
|
||||
|
||||
for ARGS in "${args_list[@]}"; do
|
||||
"$install_script_path" --version $ARGS -NoPath --arch $arch
|
||||
for ARGS in ${args_list[@]}; do
|
||||
$install_script_path --version $ARGS -NoPath --arch $arch
|
||||
done
|
||||
|
||||
# dotnet installer doesn't create symlink to executable in /user/local/bin
|
||||
@@ -46,12 +46,12 @@ done
|
||||
ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet
|
||||
|
||||
# Validate installation
|
||||
if [ $(dotnet --list-sdks | wc -l) -lt "1" ]; then
|
||||
if [[ $(dotnet --list-sdks | wc -l) -lt "1" ]]; then
|
||||
echo "The .NET Core SDK is not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> "$HOME/.bashrc"
|
||||
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> $HOME/.bashrc
|
||||
echo "Dotnet operations have been completed successfully..."
|
||||
|
||||
invoke_tests "Common" ".NET"
|
||||
|
||||
@@ -30,10 +30,10 @@ edge_driver_archive_path=$(download_with_retry "$edge_driver_url")
|
||||
|
||||
EDGE_DRIVER_DIR="/usr/local/share/edge_driver"
|
||||
mkdir -p $EDGE_DRIVER_DIR
|
||||
unzip -qq "$edge_driver_archive_path" -d "$EDGE_DRIVER_DIR"
|
||||
ln -s "$EDGE_DRIVER_DIR/msedgedriver" "/usr/local/bin/msedgedriver"
|
||||
unzip -qq $edge_driver_archive_path -d $EDGE_DRIVER_DIR
|
||||
ln -s $EDGE_DRIVER_DIR/msedgedriver /usr/local/bin/msedgedriver
|
||||
|
||||
echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> "${HOME}/.bashrc"
|
||||
echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> ${HOME}/.bashrc
|
||||
|
||||
# Configure Edge Updater to prevent auto update
|
||||
# https://learn.microsoft.com/en-us/deployedge/edge-learnmore-edgeupdater-for-macos
|
||||
|
||||
@@ -14,6 +14,6 @@ brew_smart_install "geckodriver"
|
||||
geckoPath="$(brew --prefix geckodriver)/bin"
|
||||
|
||||
echo "Add GECKOWEBDRIVER to bashrc..."
|
||||
echo "export GECKOWEBDRIVER=${geckoPath}" >> "${HOME}/.bashrc"
|
||||
echo "export GECKOWEBDRIVER=${geckoPath}" >> ${HOME}/.bashrc
|
||||
|
||||
invoke_tests "Browsers" "Firefox"
|
||||
|
||||
@@ -14,7 +14,7 @@ done
|
||||
|
||||
# Delete default gfortran link if it exists https://github.com/actions/runner-images/issues/1280
|
||||
gfortranPath=$(which gfortran) || true
|
||||
if [ $gfortranPath ]; then
|
||||
if [[ $gfortranPath ]]; then
|
||||
rm $gfortranPath
|
||||
fi
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing Git...
|
||||
echo "Installing Git..."
|
||||
brew_smart_install "git"
|
||||
|
||||
git config --global --add safe.directory "*"
|
||||
|
||||
echo Installing Git LFS
|
||||
echo "Installing Git LFS"
|
||||
brew_smart_install "git-lfs"
|
||||
|
||||
# Update global git config
|
||||
@@ -19,7 +19,7 @@ git lfs install
|
||||
# Update system git config
|
||||
sudo git lfs install --system
|
||||
|
||||
echo Disable all the Git help messages...
|
||||
echo "Disable all the Git help messages..."
|
||||
git config --global advice.pushUpdateRejected false
|
||||
git config --global advice.pushNonFFCurrent false
|
||||
git config --global advice.pushNonFFMatching false
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | sh
|
||||
curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | bash
|
||||
export PATH="$HOME/.ghcup/bin:$PATH"
|
||||
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> "$HOME/.bashrc"
|
||||
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> $HOME/.bashrc
|
||||
|
||||
# ghcup output looks like this "ghc 8.6.4 base-4.12.0.0 hls-powered", need to take all the first versions only(8.6.4 in that case) and avoid pre-release ones
|
||||
availableVersions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}')
|
||||
|
||||
@@ -10,7 +10,7 @@ arch=$(get_arch)
|
||||
|
||||
echo "Installing Homebrew..."
|
||||
homebrew_installer_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/install/master/install.sh")
|
||||
/bin/bash "$homebrew_installer_path"
|
||||
/bin/bash $homebrew_installer_path
|
||||
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
/opt/homebrew/bin/brew update
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
miniconda_installer_path=$(download_with_retry "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh")
|
||||
chmod +x "$miniconda_installer_path"
|
||||
sudo "$miniconda_installer_path" -b -p /usr/local/miniconda
|
||||
chmod +x $miniconda_installer_path
|
||||
sudo $miniconda_installer_path -b -p /usr/local/miniconda
|
||||
|
||||
# Chmod with full permissions recursively to avoid permissions restrictions
|
||||
sudo chmod -R 777 /usr/local/miniconda
|
||||
|
||||
sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda
|
||||
|
||||
if [ -d "$HOME/.conda" ]; then
|
||||
sudo chown -R $USER "$HOME/.conda"
|
||||
if [[ -d $HOME/.conda ]]; then
|
||||
sudo chown -R $USER $HOME/.conda
|
||||
fi
|
||||
|
||||
echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc
|
||||
|
||||
@@ -14,10 +14,10 @@ toolsetVersion=$(get_toolset_value '.mongodb.version')
|
||||
brew tap mongodb/brew
|
||||
versionToInstall=$(brew search --formulae /mongodb-community@$toolsetVersion/ | awk -F'/' '{print $3}' | tail -1)
|
||||
echo "Installing mongodb $versionToInstall"
|
||||
brew_smart_install "$versionToInstall"
|
||||
brew_smart_install $versionToInstall
|
||||
|
||||
if ! which mongo ; then
|
||||
brew link "$versionToInstall"
|
||||
brew link $versionToInstall
|
||||
fi
|
||||
|
||||
invoke_tests "Databases" "MongoDB"
|
||||
|
||||
@@ -9,28 +9,28 @@ source ~/utils/utils.sh
|
||||
# Install Mono Framework
|
||||
mono_version_full=$(get_toolset_value '.mono.framework.version')
|
||||
mono_pkg_sha256=$(get_toolset_value '.mono.framework.sha256')
|
||||
mono_version=$(echo "$mono_version_full" | cut -d. -f 1,2,3)
|
||||
mono_version=$(echo $mono_version_full | cut -d. -f 1,2,3)
|
||||
mono_version_short=$(echo $mono_version_full | cut -d. -f 1,2)
|
||||
mono_pkg_url="https://download.mono-project.com/archive/${mono_version}/macos-10-universal/MonoFramework-MDK-${mono_version_full}.macos10.xamarin.universal.pkg"
|
||||
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
|
||||
|
||||
mono_pkg_path=$(download_with_retry "$mono_pkg_url")
|
||||
use_checksum_comparison "$mono_pkg_path" "$mono_pkg_sha256"
|
||||
mono_pkg_path=$(download_with_retry $mono_pkg_url)
|
||||
use_checksum_comparison $mono_pkg_path $mono_pkg_sha256
|
||||
echo "Installing Mono Framework ${mono_version_full}..."
|
||||
sudo installer -pkg "$mono_pkg_path" -target /
|
||||
sudo installer -pkg $mono_pkg_path -target /
|
||||
|
||||
# Download and install NUnit console
|
||||
nunit_version=$(get_toolset_value '.mono.nunit.version')
|
||||
nunit_archive_url="https://github.com/nunit/nunit-console/releases/download/${nunit_version}/NUnit.Console-${nunit_version}.zip"
|
||||
nunit_archive_sha256=$(get_toolset_value '.mono.nunit.sha256')
|
||||
NUNIT_PATH="/Library/Developer/nunit"
|
||||
nunit_version_path="$NUNIT_PATH/$nunit_version"
|
||||
nunit_version_path=$NUNIT_PATH/$nunit_version
|
||||
|
||||
nunit_archive_path=$(download_with_retry "$nunit_archive_url")
|
||||
use_checksum_comparison "$nunit_archive_path" "$nunit_archive_sha256"
|
||||
nunit_archive_path=$(download_with_retry $nunit_archive_url)
|
||||
use_checksum_comparison $nunit_archive_path $nunit_archive_sha256
|
||||
echo "Installing NUnit ${nunit_version}..."
|
||||
sudo mkdir -p "$nunit_version_path"
|
||||
sudo unzip -q "$nunit_archive_path" -d "$nunit_version_path"
|
||||
sudo mkdir -p $nunit_version_path
|
||||
sudo unzip -q $nunit_archive_path -d $nunit_version_path
|
||||
|
||||
# Create a wrapper script for nunit3-console
|
||||
echo "Creating nunit3-console wrapper..."
|
||||
@@ -39,13 +39,13 @@ cat <<EOF > "$nunit3_console_wrapper"
|
||||
#!/bin/bash -e -o pipefail
|
||||
exec ${MONO_VERSIONS_PATH}/${mono_version}/bin/mono --debug \$MONO_OPTIONS $nunit_version_path/nunit3-console.exe "\$@"
|
||||
EOF
|
||||
cat "$nunit3_console_wrapper"
|
||||
sudo chmod +x "$nunit3_console_wrapper"
|
||||
sudo mv "$nunit3_console_wrapper" "${MONO_VERSIONS_PATH}/${mono_version}/Commands/nunit3-console"
|
||||
cat $nunit3_console_wrapper
|
||||
sudo chmod +x $nunit3_console_wrapper
|
||||
sudo mv $nunit3_console_wrapper "${MONO_VERSIONS_PATH}/${mono_version}/Commands/nunit3-console"
|
||||
|
||||
# Create a symlink for the short version of Mono (e.g., 6.12)
|
||||
echo "Creating short symlink '${mono_version_short}'..."
|
||||
sudo ln -s "${MONO_VERSIONS_PATH}/${mono_version}" "${MONO_VERSIONS_PATH}/${mono_version_short}"
|
||||
sudo ln -s ${MONO_VERSIONS_PATH}/${mono_version} ${MONO_VERSIONS_PATH}/${mono_version_short}
|
||||
|
||||
# Invoke tests for Xamarin and Mono
|
||||
invoke_tests "Xamarin" "Mono"
|
||||
|
||||
@@ -14,7 +14,7 @@ brew link node@$defaultVersion --force --overwrite
|
||||
|
||||
echo Installing yarn...
|
||||
yarn_installer_path=$(download_with_retry "https://yarnpkg.com/install.sh")
|
||||
bash "$yarn_installer_path"
|
||||
bash $yarn_installer_path
|
||||
|
||||
if is_BigSur || is_Monterey; then
|
||||
npm_global_packages=$(get_toolset_value '.npm.global_packages[].name')
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
[[ -n $API_PAT ]] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
nvm_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh")
|
||||
|
||||
if bash "$nvm_installer_path"; then
|
||||
. ~/.bashrc
|
||||
if bash $nvm_installer_path; then
|
||||
source ~/.bashrc
|
||||
nvm --version
|
||||
for version in $(get_toolset_value '.node.nvm_versions[]'); do
|
||||
nvm install "v${version}"
|
||||
|
||||
@@ -18,15 +18,15 @@ createEnvironmentVariable() {
|
||||
|
||||
if [[ ${DEFAULT} == "True" ]]; then
|
||||
echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}"
|
||||
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
|
||||
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
|
||||
fi
|
||||
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
echo "Setting up JAVA_HOME_${JAVA_VERSION}_arm64 variable to ${INSTALL_PATH_PATTERN}"
|
||||
echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
|
||||
echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
|
||||
else
|
||||
echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}"
|
||||
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
|
||||
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -58,12 +58,12 @@ installOpenJDK() {
|
||||
fi
|
||||
|
||||
# Download and extract Java binaries
|
||||
archive_path=$(download_with_retry "$archive_url")
|
||||
archive_path=$(download_with_retry $archive_url)
|
||||
|
||||
echo "Creating ${javaToolcacheVersionArchPath} directory"
|
||||
mkdir -p ${javaToolcacheVersionArchPath}
|
||||
|
||||
tar -xf "$archive_path" -C ${javaToolcacheVersionArchPath} --strip-components=1
|
||||
tar -xf $archive_path -C ${javaToolcacheVersionArchPath} --strip-components=1
|
||||
|
||||
# Create complete file
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
|
||||
@@ -20,11 +20,11 @@ brew services start $postgreService
|
||||
echo "Check PostgreSQL service is running"
|
||||
i=10
|
||||
COMMAND='pg_isready'
|
||||
while [ $i -gt 0 ]; do
|
||||
while [[ $i -gt 0 ]]; do
|
||||
echo "Check PostgreSQL service status"
|
||||
eval $COMMAND && break
|
||||
((i--))
|
||||
if [ $i == 0 ]; then
|
||||
if [[ $i == 0 ]]; then
|
||||
echo "PostgreSQL service not ready, all attempts exhausted"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -11,7 +11,7 @@ arch=$(get_arch)
|
||||
|
||||
metadata_json_path=$(download_with_retry "https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json")
|
||||
pwshVersionToolset=$(get_toolset_value '.pwsh.version')
|
||||
pwshVersions=$(jq -r '.LTSReleaseTag[]' "$metadata_json_path")
|
||||
pwshVersions=$(jq -r '.LTSReleaseTag[]' $metadata_json_path)
|
||||
|
||||
for version in ${pwshVersions[@]}; do
|
||||
if [[ "$version" =~ "$pwshVersionToolset" ]]; then
|
||||
@@ -20,19 +20,19 @@ for version in ${pwshVersions[@]}; do
|
||||
fi
|
||||
done
|
||||
|
||||
pkg_path=$(download_with_retry "$download_url")
|
||||
pkg_path=$(download_with_retry $download_url)
|
||||
|
||||
# Work around the issue on macOS Big Sur 11.5 or higher for possible error message ("can't be opened because Apple cannot check it for malicious software") when installing the package
|
||||
sudo xattr -rd com.apple.quarantine "$pkg_path"
|
||||
sudo xattr -rd com.apple.quarantine $pkg_path
|
||||
|
||||
sudo installer -pkg "$pkg_path" -target /
|
||||
sudo installer -pkg $pkg_path -target /
|
||||
|
||||
# Install PowerShell modules
|
||||
psModules=$(get_toolset_value '.powershellModules[].name')
|
||||
for module in ${psModules[@]}; do
|
||||
echo "Installing $module module"
|
||||
moduleVersions="$(get_toolset_value ".powershellModules[] | select(.name==\"$module\") | .versions[]?")"
|
||||
if [[ -z "$moduleVersions" ]];then
|
||||
if [[ -z $moduleVersions ]];then
|
||||
# Check MacOS architecture and sudo on Arm64
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
sudo pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
|
||||
|
||||
@@ -6,23 +6,22 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
function InstallPyPy
|
||||
{
|
||||
PACKAGE_URL=$1
|
||||
InstallPyPy() {
|
||||
local package_url=$1
|
||||
|
||||
PACKAGE_TAR_NAME=$(basename "$PACKAGE_URL")
|
||||
PACKAGE_TAR_NAME=$(basename $package_url)
|
||||
echo "Downloading tar archive '$PACKAGE_TAR_NAME'"
|
||||
archive_path=$(download_with_retry "$PACKAGE_URL")
|
||||
archive_path=$(download_with_retry $package_url)
|
||||
|
||||
echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder"
|
||||
tar xf "$archive_path" -C /tmp
|
||||
tar xf $archive_path -C /tmp
|
||||
|
||||
# Get Python version
|
||||
PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/}
|
||||
MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1)
|
||||
PYTHON_MAJOR="python$MAJOR_VERSION"
|
||||
|
||||
if [ $MAJOR_VERSION != 2 ]; then
|
||||
if [[ $MAJOR_VERSION != 2 ]]; then
|
||||
PYPY_MAJOR="pypy$MAJOR_VERSION"
|
||||
else
|
||||
PYPY_MAJOR="pypy"
|
||||
@@ -40,14 +39,14 @@ function InstallPyPy
|
||||
PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64
|
||||
|
||||
echo "Check if PyPy hostedtoolcache folder exist..."
|
||||
if [ ! -d $PYPY_TOOLCACHE_PATH ]; then
|
||||
if [[ ! -d $PYPY_TOOLCACHE_PATH ]]; then
|
||||
mkdir -p $PYPY_TOOLCACHE_PATH
|
||||
fi
|
||||
|
||||
echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder"
|
||||
mkdir $PYPY_TOOLCACHE_VERSION_PATH
|
||||
|
||||
echo "Move PyPy '$PACKAGE_TEMP_FOLDER' binaries to '$PYPY_TOOLCACHE_VERSION_ARCH_PATH' folder"
|
||||
echo "Move PyPy $PACKAGE_TEMP_FOLDER binaries to $PYPY_TOOLCACHE_VERSION_ARCH_PATH folder"
|
||||
mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH
|
||||
|
||||
echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)"
|
||||
@@ -58,8 +57,8 @@ function InstallPyPy
|
||||
echo $PYPY_FULL_VERSION > "PYPY_VERSION"
|
||||
|
||||
# Starting from PyPy 7.3.4 these links are already included in the package
|
||||
[ -f ./$PYTHON_MAJOR ] || ln -s $PYPY_MAJOR $PYTHON_MAJOR
|
||||
[ -f ./python ] || ln -s $PYTHON_MAJOR python
|
||||
[[ -f ./$PYTHON_MAJOR ]] || ln -s $PYPY_MAJOR $PYTHON_MAJOR
|
||||
[[ -f ./python ]] || ln -s $PYTHON_MAJOR python
|
||||
|
||||
chmod +x ./python ./$PYTHON_MAJOR
|
||||
|
||||
@@ -76,12 +75,12 @@ versions_json_path=$(download_with_retry "https://downloads.python.org/pypy/vers
|
||||
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .arch.'$arch'.versions[]')
|
||||
|
||||
for toolsetVersion in $toolsetVersions; do
|
||||
latestMajorPyPyVersion=$(cat "$versions_json_path" |
|
||||
latestMajorPyPyVersion=$(cat $versions_json_path |
|
||||
jq -r --arg toolsetVersion $toolsetVersion '.[]
|
||||
| select((.python_version | startswith($toolsetVersion)) and .stable == true).files[]
|
||||
| select(.platform == "darwin").download_url' | head -1)
|
||||
if [[ -z "$latestMajorPyPyVersion" ]]; then
|
||||
echo "Failed to get PyPy version '$toolsetVersion'"
|
||||
if [[ -z $latestMajorPyPyVersion ]]; then
|
||||
echo "Failed to get PyPy version $toolsetVersion"
|
||||
exit 1
|
||||
fi
|
||||
InstallPyPy $latestMajorPyPyVersion
|
||||
|
||||
@@ -12,19 +12,19 @@ if is_Monterey || is_BigSur; then
|
||||
echo "Install latest Python 2"
|
||||
python2_pkg=$(download_with_retry "https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg")
|
||||
python2_pkg_sha256="c570f38b05dd8b112ad21b418cdf51a9816d62f9f44746452739d421be24d50c"
|
||||
use_checksum_comparison "$python2_pkg" "$python2_pkg_sha256"
|
||||
use_checksum_comparison $python2_pkg $python2_pkg_sha256
|
||||
|
||||
choice_changes_xml=$(mktemp /tmp/python2_choice_changes.xml.XXXXXX)
|
||||
sudo installer -showChoiceChangesXML -pkg "$python2_pkg" -target / | tee "$choice_changes_xml" > /dev/null
|
||||
sudo installer -showChoiceChangesXML -pkg $python2_pkg -target / | tee $choice_changes_xml > /dev/null
|
||||
|
||||
# To avoid symlink conflicts, remove tools installation in /usr/local/bin using installer choices
|
||||
xmllint --shell "$choice_changes_xml" <<EOF
|
||||
xmllint --shell $choice_changes_xml <<EOF
|
||||
cd //array/dict[string[text()='org.python.Python.PythonUnixTools-2.7']]/integer
|
||||
set 0
|
||||
save
|
||||
EOF
|
||||
|
||||
sudo installer -applyChoiceChangesXML "$choice_changes_xml" -pkg "$python2_pkg" -target /
|
||||
sudo installer -applyChoiceChangesXML $choice_changes_xml -pkg $python2_pkg -target /
|
||||
|
||||
pip install --upgrade pip
|
||||
|
||||
@@ -46,8 +46,8 @@ export PIPX_HOME=/usr/local/opt/pipx
|
||||
|
||||
brew_smart_install "pipx"
|
||||
|
||||
echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> "${HOME}/.bashrc"
|
||||
echo "export PIPX_HOME=${PIPX_HOME}" >> "${HOME}/.bashrc"
|
||||
echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> "${HOME}/.bashrc"
|
||||
echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> ${HOME}/.bashrc
|
||||
echo "export PIPX_HOME=${PIPX_HOME}" >> ${HOME}/.bashrc
|
||||
echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> ${HOME}/.bashrc
|
||||
|
||||
invoke_tests "Python"
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
## Desc: Install Rosetta
|
||||
################################################################################
|
||||
|
||||
echo 'Installing Rosetta'
|
||||
echo "Installing Rosetta"
|
||||
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
||||
|
||||
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
|
||||
|
||||
arch=$(get_arch)
|
||||
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
|
||||
echo Installing Ruby...
|
||||
echo "Installing Ruby..."
|
||||
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
||||
@@ -16,12 +16,12 @@ else
|
||||
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
||||
fi
|
||||
|
||||
GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
|
||||
echo "GEM_PATH=$GEM_PATH" >> "$HOME/.bashrc"
|
||||
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}')
|
||||
echo "GEM_PATH=$GEM_PATH" >> $HOME/.bashrc
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
|
||||
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
|
||||
else
|
||||
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
|
||||
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
|
||||
fi
|
||||
|
||||
if ! is_Arm64; then
|
||||
@@ -29,13 +29,13 @@ if ! is_Arm64; then
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
|
||||
RUBY_PATH="$AGENT_TOOLSDIRECTORY/Ruby"
|
||||
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
|
||||
|
||||
echo "Check if Ruby hostedtoolcache folder exists..."
|
||||
if [ ! -d $RUBY_PATH ]; then
|
||||
if [[ ! -d $RUBY_PATH ]]; then
|
||||
mkdir -p $RUBY_PATH
|
||||
fi
|
||||
|
||||
echo "ruby path - $RUBY_PATH "
|
||||
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)
|
||||
@@ -47,10 +47,10 @@ if ! is_Arm64; then
|
||||
echo "Downloading tar archive $PACKAGE_TAR_NAME"
|
||||
ARCHIVE_PATH=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${PACKAGE_TAR_NAME}")
|
||||
|
||||
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
|
||||
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
|
||||
echo "Create complete file"
|
||||
touch $COMPLETE_FILE_PATH
|
||||
fi
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Updating RubyGems...
|
||||
echo "Updating RubyGems..."
|
||||
gem update --system
|
||||
|
||||
# Temporarily install activesupport 7.0.8 due to compatibility issues with cocoapods https://github.com/CocoaPods/CocoaPods/issues/12081
|
||||
gem install activesupport -v 7.0.8
|
||||
|
||||
gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]')
|
||||
if [ -n "$gemsToInstall" ]; then
|
||||
if [[ -n $gemsToInstall ]]; then
|
||||
for gem in $gemsToInstall; do
|
||||
echo "Installing gem $gem"
|
||||
gem install $gem
|
||||
|
||||
@@ -6,23 +6,23 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing Rustup...
|
||||
echo "Installing Rustup..."
|
||||
brew_smart_install "rustup-init"
|
||||
|
||||
echo Installing Rust language...
|
||||
echo "Installing Rust language..."
|
||||
rustup-init -y --no-modify-path --default-toolchain=stable --profile=minimal
|
||||
|
||||
echo Initialize environment variables...
|
||||
echo "Initialize environment variables..."
|
||||
CARGO_HOME=$HOME/.cargo
|
||||
|
||||
echo Install common tools...
|
||||
echo "Install common tools..."
|
||||
rustup component add rustfmt clippy
|
||||
|
||||
if is_BigSur || is_Monterey; then
|
||||
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
|
||||
fi
|
||||
|
||||
echo Cleanup Cargo registry cached data...
|
||||
echo "Cleanup Cargo registry cached data..."
|
||||
rm -rf $CARGO_HOME/registry/*
|
||||
|
||||
invoke_tests "Rust"
|
||||
|
||||
@@ -13,7 +13,7 @@ sudo safaridriver --enable
|
||||
echo "Enabling the 'Allow Remote Automation' option in Safari's Develop menu"
|
||||
mkdir -p $HOME/Library/WebDriver
|
||||
safari_plist="$HOME/Library/WebDriver/com.apple.Safari.plist"
|
||||
# "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist
|
||||
# "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist
|
||||
/usr/libexec/PlistBuddy -c 'delete AllowRemoteAutomation' $safari_plist || true
|
||||
/usr/libexec/PlistBuddy -c 'add AllowRemoteAutomation bool true' $safari_plist
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing Swiftlint...
|
||||
echo "Installing Swiftlint..."
|
||||
if is_BigSur; then
|
||||
# SwiftLint now requires Swift 5.6 or higher to build, and macOS 12 or higher to run https://github.com/realm/SwiftLint/releases/tag/0.49.0
|
||||
COMMIT=d1d5743344227fe6e3c37cfba19f0cfe15a9448a
|
||||
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/swiftlint.rb"
|
||||
|
||||
curl -fsSL "$FORMULA_URL" > $(find $(brew --repository) -name swiftlint.rb)
|
||||
curl -fsSL $FORMULA_URL > $(find $(brew --repository) -name swiftlint.rb)
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint
|
||||
else
|
||||
brew_smart_install "swiftlint"
|
||||
|
||||
@@ -24,13 +24,13 @@ install_vsmac() {
|
||||
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
|
||||
mkdir -p "$TMPMOUNT/downloads"
|
||||
|
||||
vsmac_installer=$(download_with_retry "$vsmac_download_url" "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
|
||||
vsmac_installer=$(download_with_retry $vsmac_download_url "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
|
||||
|
||||
echo "Mounting Visual Studio..."
|
||||
hdiutil attach "$vsmac_installer" -mountpoint "$TMPMOUNT"
|
||||
hdiutil attach $vsmac_installer -mountpoint $TMPMOUNT
|
||||
|
||||
echo "Moving Visual Studio to /Applications/..."
|
||||
pushd "$TMPMOUNT"
|
||||
pushd $TMPMOUNT
|
||||
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
|
||||
|
||||
if [[ $vsmac_version != $vsmac_default ]]; then
|
||||
@@ -38,14 +38,14 @@ install_vsmac() {
|
||||
fi
|
||||
|
||||
popd
|
||||
sudo hdiutil detach "$TMPMOUNT"
|
||||
sudo rm -rf "$TMPMOUNT"
|
||||
sudo hdiutil detach $TMPMOUNT
|
||||
sudo rm -rf $TMPMOUNT
|
||||
}
|
||||
|
||||
vsmac_versions=($(get_toolset_value '.xamarin.vsmac.versions[]'))
|
||||
default_vsmac_version=$(get_toolset_value '.xamarin.vsmac.default')
|
||||
|
||||
for version in "${vsmac_versions[@]}"; do
|
||||
for version in ${vsmac_versions[@]}; do
|
||||
install_vsmac $version $default_vsmac_version
|
||||
done
|
||||
|
||||
|
||||
@@ -15,17 +15,17 @@ latest_sdk_symlink=$(get_toolset_value '.xamarin.bundles[0].symlink')
|
||||
current_sdk_symlink=$(get_toolset_value '.xamarin."bundle_default"')
|
||||
default_xcode_version=$(get_toolset_value '.xcode.default')
|
||||
|
||||
if [ "$current_sdk_symlink" == "latest" ]; then
|
||||
if [[ $current_sdk_symlink == "latest" ]]; then
|
||||
current_sdk_symlink=$latest_sdk_symlink
|
||||
fi
|
||||
|
||||
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
|
||||
IOS_VERSIONS_PATH='/Library/Frameworks/Xamarin.iOS.framework/Versions'
|
||||
ANDROID_VERSIONS_PATH='/Library/Frameworks/Xamarin.Android.framework/Versions'
|
||||
MAC_VERSIONS_PATH='/Library/Frameworks/Xamarin.Mac.framework/Versions'
|
||||
MONO_VERSIONS_PATH="/Library/Frameworks/Mono.framework/Versions"
|
||||
IOS_VERSIONS_PATH="/Library/Frameworks/Xamarin.iOS.framework/Versions"
|
||||
ANDROID_VERSIONS_PATH="/Library/Frameworks/Xamarin.Android.framework/Versions"
|
||||
MAC_VERSIONS_PATH="/Library/Frameworks/Xamarin.Mac.framework/Versions"
|
||||
|
||||
TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`
|
||||
TMPMOUNT_FRAMEWORKS="$TMPMOUNT/frameworks"
|
||||
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
|
||||
TMPMOUNT_FRAMEWORKS=$TMPMOUNT/frameworks
|
||||
createBackupFolders
|
||||
|
||||
pushd $TMPMOUNT
|
||||
@@ -34,19 +34,19 @@ pushd $TMPMOUNT
|
||||
downloadNUnitConsole
|
||||
|
||||
# Install Mono sdks
|
||||
for version in "${mono_versions[@]}"; do installMono $version; done
|
||||
for version in ${mono_versions[@]}; do installMono $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/mono/* $MONO_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.iOS sdks
|
||||
for version in "${xamarin_ios_versions[@]}"; do installXamarinIOS $version; done
|
||||
for version in ${xamarin_ios_versions[@]}; do installXamarinIOS $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/ios/* $IOS_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.Mac sdks
|
||||
for version in "${xamarin_mac_versions[@]}"; do installXamarinMac $version; done
|
||||
for version in ${xamarin_mac_versions[@]}; do installXamarinMac $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/mac/* $MAC_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.Android sdks
|
||||
for version in "${xamarin_android_versions[@]}"; do installXamarinAndroid $version; done
|
||||
for version in ${xamarin_android_versions[@]}; do installXamarinAndroid $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/android/* $ANDROID_VERSIONS_PATH/
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ createUWPShim
|
||||
popd
|
||||
|
||||
echo "Clean up packages..."
|
||||
sudo rm -rf "$TMPMOUNT"
|
||||
sudo rm -rf $TMPMOUNT
|
||||
|
||||
# Fix Xamarin issue with Xcode symlink: https://github.com/xamarin/xamarin-macios/issues/9960
|
||||
PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin"
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
is_clt_installed() {
|
||||
clt_path=`xcode-select -p 2>&1`
|
||||
[[ -d "$clt_path" ]]
|
||||
clt_path=$(xcode-select -p 2>&1)
|
||||
[[ -d $clt_path ]]
|
||||
}
|
||||
|
||||
install_clt() {
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-xcode-simulators.sh
|
||||
## Desc: Install Xcode simulators
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
# Downloading and installing simulators
|
||||
SIMS_TO_INSTALL=(
|
||||
"8.4"
|
||||
"9.0"
|
||||
"9.1"
|
||||
"9.2"
|
||||
"9.3"
|
||||
"10.0"
|
||||
"10.1"
|
||||
"10.2"
|
||||
"10.3"
|
||||
)
|
||||
|
||||
for sim_version in ${SIMS_TO_INSTALL[@]}
|
||||
do
|
||||
echo "Installing iOS $sim_version ..."
|
||||
sudo xcversion simulators --install="iOS ${sim_version}"
|
||||
echo "Successfuly installed iOS $sim_version ..."
|
||||
done
|
||||
|
||||
echo "Done installing simulator runtimes."
|
||||
@@ -87,12 +87,6 @@ get_toolset_value() {
|
||||
echo "$(jq -r "$query" $toolset_path)"
|
||||
}
|
||||
|
||||
verlte() {
|
||||
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
|
||||
[ "$1" = "$sortedVersion" ]
|
||||
}
|
||||
|
||||
|
||||
# brew provides package bottles for different macOS versions
|
||||
# The 'brew install' command will fail if a package bottle does not exist
|
||||
# Use the '--build-from-source' option to build from source in this case
|
||||
|
||||
@@ -160,7 +160,7 @@ installNunitConsole() {
|
||||
#!/bin/bash -e -o pipefail
|
||||
exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@"
|
||||
EOF
|
||||
sudo chmod +x "$TMP_WRAPPER_PATH"
|
||||
sudo chmod +x $TMP_WRAPPER_PATH
|
||||
sudo mv "$TMP_WRAPPER_PATH" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user