mirror of
https://github.com/actions/runner-images.git
synced 2025-12-15 22:26:56 +00:00
[macOS] Implement helper to get GitHub package download URL (#4923)
This commit is contained in:
committed by
GitHub
parent
5217af8068
commit
f747f0983b
@@ -2,8 +2,7 @@
|
|||||||
source ~/utils/utils.sh
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
echo Installing PowerShell...
|
echo Installing PowerShell...
|
||||||
psRelease=$(curl -H "Authorization: token $API_PAT" -s "https://api.github.com/repos/PowerShell/PowerShell/releases/latest")
|
psDownloadUrl=$(get_github_package_download_url "PowerShell" "PowerShell" "contains(\"osx-x64.pkg\")" "latest" "$API_PAT")
|
||||||
psDownloadUrl=$(echo $psRelease | jq -r '.assets[].browser_download_url | select(contains("osx-x64.pkg"))' | head -n 1)
|
|
||||||
download_with_retries $psDownloadUrl "/tmp" "powershell.pkg"
|
download_with_retries $psDownloadUrl "/tmp" "powershell.pkg"
|
||||||
|
|
||||||
# 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
|
# 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
|
||||||
|
|||||||
@@ -2,24 +2,23 @@
|
|||||||
source ~/utils/utils.sh
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
echo "Get the latest Stack version..."
|
echo "Get the latest Stack version..."
|
||||||
StackRelease=$(curl -H "Authorization: token $API_PAT" -s "https://api.github.com/repos/commercialhaskell/stack/releases/latest")
|
stackDownloadUrl=$(get_github_package_download_url "commercialhaskell" "stack" "contains(\"osx-x86_64.tar.gz\")" "latest" "$API_PAT")
|
||||||
DownloadUrl=$(echo $StackRelease | jq -r '.assets[].browser_download_url | select(contains("osx-x86_64.tar.gz"))' | head -n 1)
|
stackVersion=$(echo $stackDownloadUrl | cut -d "/" -f8 | tr -d "v")
|
||||||
StackVersion=$(echo $StackRelease | jq -r '.name' | cut -c2-)
|
stackArchive="/tmp/stack.tar.gz"
|
||||||
StackArchive="/tmp/stack.tar.gz"
|
|
||||||
|
|
||||||
echo "Download stack version $StackVersion..."
|
echo "Download stack version $stackVersion..."
|
||||||
download_with_retries $DownloadUrl "/tmp" "stack.tar.gz"
|
download_with_retries $stackDownloadUrl "/tmp" "stack.tar.gz"
|
||||||
|
|
||||||
StackToolcachePath="$AGENT_TOOLSDIRECTORY/stack/$StackVersion"
|
stackToolcachePath="$AGENT_TOOLSDIRECTORY/stack/$stackVersion"
|
||||||
DestinationPath="$StackToolcachePath/x64"
|
destinationPath="$stackToolcachePath/x64"
|
||||||
|
|
||||||
mkdir -p $DestinationPath
|
mkdir -p $destinationPath
|
||||||
|
|
||||||
echo "Unzip stack archive..."
|
echo "Unzip stack archive..."
|
||||||
tar -xzf $StackArchive -C $DestinationPath --strip 1
|
tar -xzf $stackArchive -C $destinationPath --strip 1
|
||||||
|
|
||||||
touch $StackToolcachePath/x64.complete
|
touch $stackToolcachePath/x64.complete
|
||||||
|
|
||||||
echo "export PATH="\$PATH":$DestinationPath" >> "$HOME/.bashrc"
|
echo "export PATH="\$PATH":$destinationPath" >> "$HOME/.bashrc"
|
||||||
|
|
||||||
invoke_tests "Common" "Stack"
|
invoke_tests "Common" "Stack"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
source ~/utils/utils.sh
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
echo "Install SwiftLint"
|
echo "Install SwiftLint"
|
||||||
swiftlintUrl=$(curl -H "Authorization: token $API_PAT" -s "https://api.github.com/repos/realm/SwiftLint/releases/latest" | jq -r '.assets[].browser_download_url | select(contains("portable_swiftlint.zip"))')
|
swiftlintUrl=$(get_github_package_download_url "realm" "SwiftLint" "contains(\"portable_swiftlint.zip\")" "latest" "$API_PAT")
|
||||||
download_with_retries $swiftlintUrl "/tmp" "portable_swiftlint.zip"
|
download_with_retries $swiftlintUrl "/tmp" "portable_swiftlint.zip"
|
||||||
unzip -q "/tmp/portable_swiftlint.zip" -d /usr/local/bin
|
unzip -q "/tmp/portable_swiftlint.zip" -d /usr/local/bin
|
||||||
# Remove the LICENSE file that comes along with the binary and the downloaded archive
|
# Remove the LICENSE file that comes along with the binary and the downloaded archive
|
||||||
|
|||||||
@@ -171,3 +171,26 @@ configure_user_tccdb () {
|
|||||||
local sqlQuery="INSERT OR IGNORE INTO access VALUES($values);"
|
local sqlQuery="INSERT OR IGNORE INTO access VALUES($values);"
|
||||||
sqlite3 "$dbPath" "$sqlQuery"
|
sqlite3 "$dbPath" "$sqlQuery"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_github_package_download_url() {
|
||||||
|
local REPO_OWNER=$1
|
||||||
|
local REPO_NAME=$2
|
||||||
|
local FILTER=$3
|
||||||
|
local VERSION=$4
|
||||||
|
local API_PAT=$5
|
||||||
|
local SEARCH_IN_COUNT="100"
|
||||||
|
|
||||||
|
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||||
|
|
||||||
|
json=$(curl "${authString[@]}" -s "https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/releases?per_page=${SEARCH_IN_COUNT}")
|
||||||
|
|
||||||
|
if [[ "$VERSION" == "latest" ]]; then
|
||||||
|
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | tail -1)
|
||||||
|
else
|
||||||
|
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | egrep "\w*${VERSION}" | tail -1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1)
|
||||||
|
|
||||||
|
echo $downloadUrl
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user