mirror of
https://github.com/actions/runner-images.git
synced 2025-12-11 03:27:05 +00:00
* [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”>
58 lines
1.9 KiB
Bash
58 lines
1.9 KiB
Bash
#!/bin/bash -e -o pipefail
|
|
################################################################################
|
|
## File: install-dotnet.sh
|
|
## Desc: Install dotnet
|
|
################################################################################
|
|
|
|
source ~/utils/utils.sh
|
|
|
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
|
|
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
|
|
|
|
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
|
|
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))')
|
|
)
|
|
else
|
|
args_list+=(
|
|
$(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
|
|
done
|
|
|
|
# dotnet installer doesn't create symlink to executable in /user/local/bin
|
|
# Moreover at that moment /user/local/bin doesn't exist (though already added to $PATH)
|
|
ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet
|
|
|
|
# Validate installation
|
|
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 "Dotnet operations have been completed successfully..."
|
|
|
|
invoke_tests "Common" ".NET"
|