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 * 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”>
68 lines
2.6 KiB
Bash
68 lines
2.6 KiB
Bash
#!/bin/bash -e -o pipefail
|
|
################################################################################
|
|
## File: install-powershell.sh
|
|
## Desc: Install PowerShell
|
|
################################################################################
|
|
|
|
source ~/utils/utils.sh
|
|
|
|
echo Installing PowerShell...
|
|
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)
|
|
|
|
for version in ${pwshVersions[@]}; do
|
|
if [[ "$version" =~ "$pwshVersionToolset" ]]; then
|
|
download_url=$(resolve_github_release_asset_url "PowerShell/PowerShell" "contains(\"osx-$arch.pkg\")" "$version" "$API_PAT")
|
|
break
|
|
fi
|
|
done
|
|
|
|
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 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
|
|
# Check MacOS architecture and sudo on Arm64
|
|
if [[ $arch == "arm64" ]]; then
|
|
sudo pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
|
|
else
|
|
pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
|
|
fi
|
|
else
|
|
for version in ${moduleVersions[@]}; do
|
|
# Check MacOS architecture and sudo on Arm64
|
|
if [[ $arch == "arm64" ]]; then
|
|
echo " - $version"
|
|
sudo pwsh -command "& {Install-Module $module -RequiredVersion $version -Force -Scope AllUsers}"
|
|
else
|
|
echo " - $version"
|
|
pwsh -command "& {Install-Module $module -RequiredVersion $version -Force -Scope AllUsers}"
|
|
fi
|
|
done
|
|
fi
|
|
done
|
|
|
|
# Fix permission root => runner after installing powershell for arm64 arch
|
|
if [[ $arch == "arm64" ]]; then
|
|
sudo chown -R $USER ~/.local ~/.cache ~/.config
|
|
fi
|
|
|
|
# A dummy call to initialize .IdentityService directory
|
|
pwsh -command "& {Import-Module Az}"
|
|
|
|
# powershell link was removed in powershell-6.0.0-beta9
|
|
sudo ln -s /usr/local/bin/pwsh /usr/local/bin/powershell
|
|
|
|
invoke_tests "Powershell"
|