mirror of
https://github.com/actions/runner-images.git
synced 2025-12-10 19:16:48 +00:00
[Ubuntu] Get toolset value function. (#2435)
* [macOS] Fail Pester tests on error * return it back * [Ubuntu] add get_toolset_values function * added fix * fix all nitpicks * try to get rid brackets * removed brackets. * pipx-package fix
This commit is contained in:
@@ -47,4 +47,14 @@ function IsPackageInstalled {
|
||||
verlte() {
|
||||
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
|
||||
[ "$1" = "$sortedVersion" ]
|
||||
}
|
||||
|
||||
get_toolset_path() {
|
||||
echo "/imagegeneration/installers/toolset.json"
|
||||
}
|
||||
|
||||
get_toolset_value() {
|
||||
local toolset_path=$(get_toolset_path)
|
||||
local query=$1
|
||||
echo "$(jq -r "$query" $toolset_path)"
|
||||
}
|
||||
@@ -56,12 +56,11 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
minimumBuildToolVersion=$(jq -r '.android.build_tools_min_version' $toolset)
|
||||
minimumPlatformVersion=$(jq -r '.android.platform_min_version' $toolset)
|
||||
extras=$(jq -r '.android.extra_list[]|"extras;" + .' $toolset)
|
||||
addons=$(jq -r '.android.addon_list[]|"add-ons;" + .' $toolset)
|
||||
additional=$(jq -r '.android.additional_tools[]' $toolset)
|
||||
minimumBuildToolVersion=$(get_toolset_value '.android.build_tools_min_version')
|
||||
minimumPlatformVersion=$(get_toolset_value '.android.platform_min_version')
|
||||
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
|
||||
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
||||
additional=$(get_toolset_value '.android.additional_tools[]')
|
||||
|
||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
||||
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
## File: basic.sh
|
||||
## Desc: Installs basic command line utilities and dev packages
|
||||
################################################################################
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
|
||||
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
|
||||
common_packages=$(get_toolset_value .apt.common_packages[])
|
||||
cmd_packages=$(get_toolset_value .apt.cmd_packages[])
|
||||
for package in $common_packages $cmd_packages; do
|
||||
echo "Install $package"
|
||||
apt-get install -y --no-install-recommends $package
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
function InstallClang {
|
||||
local version=$1
|
||||
@@ -32,10 +33,8 @@ function SetDefaultClang {
|
||||
wget https://apt.llvm.org/llvm.sh
|
||||
chmod +x llvm.sh
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
|
||||
versions=$(jq -r '.clang.versions[]' $toolset)
|
||||
default_clang_version=$(jq -r '.clang.default_version' $toolset)
|
||||
versions=$(get_toolset_value '.clang.versions[]')
|
||||
default_clang_version=$(get_toolset_value '.clang.default_version')
|
||||
|
||||
for version in ${versions[*]}; do
|
||||
InstallClang $version
|
||||
|
||||
@@ -29,8 +29,7 @@ sleep 10
|
||||
docker info
|
||||
|
||||
# Pull images
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
images=$(jq -r '.docker.images[]' $toolset)
|
||||
images=$(get_toolset_value '.docker.images[]')
|
||||
for image in $images; do
|
||||
docker pull "$image"
|
||||
done
|
||||
|
||||
@@ -9,9 +9,8 @@ source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Ubuntu 20 doesn't support EOL versions
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
LATEST_DOTNET_PACKAGES=$(jq -r '.dotnet.aptPackages[]' $toolset)
|
||||
versions=$(jq -r '.dotnet.versions[]' $toolset)
|
||||
LATEST_DOTNET_PACKAGES=$(get_toolset_value '.dotnet.aptPackages[]')
|
||||
DOTNET_VERSIONS=$(get_toolset_value '.dotnet.versions[]')
|
||||
|
||||
mksamples()
|
||||
{
|
||||
@@ -43,7 +42,7 @@ done
|
||||
|
||||
# Get list of all released SDKs from channels which are not end-of-life or preview
|
||||
sdks=()
|
||||
for version in ${versions[@]}; do
|
||||
for version in ${DOTNET_VERSIONS[@]}; do
|
||||
release_url="https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/${version}/releases.json"
|
||||
download_with_retries "${release_url}" "." "${version}.json"
|
||||
releases=$(cat "./${version}.json")
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
function InstallGcc {
|
||||
version=$1
|
||||
@@ -18,9 +19,7 @@ function InstallGcc {
|
||||
add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
apt-get update -y
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
|
||||
versions=$(jq -r '.gcc.versions[]' $toolset)
|
||||
versions=$(get_toolset_value '.gcc.versions[]')
|
||||
|
||||
for version in ${versions[*]}; do
|
||||
InstallGcc $version
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
## File: gfortran.sh
|
||||
## Desc: Installs GNU Fortran
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
function InstallFortran {
|
||||
@@ -17,8 +17,7 @@ function InstallFortran {
|
||||
add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
apt-get update -y
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
versions=$(jq -r '.gfortran.versions[]' $toolset)
|
||||
versions=$(get_toolset_value '.gfortran.versions[]')
|
||||
|
||||
for version in ${versions[*]}
|
||||
do
|
||||
|
||||
@@ -3,13 +3,12 @@
|
||||
## File: java-tools.sh
|
||||
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
JAVA_VERSIONS_LIST=$(jq -r '.java.versions | .[]' $toolset)
|
||||
DEFAULT_JDK_VERSION=$(jq -r '.java.default' $toolset)
|
||||
JAVA_VERSIONS_LIST=$(get_toolset_value '.java.versions | .[]')
|
||||
DEFAULT_JDK_VERSION=$(get_toolset_value '.java.default')
|
||||
|
||||
# Install GPG Key for Adopt Open JDK. See https://adoptopenjdk.net/installation.html
|
||||
wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add -
|
||||
|
||||
@@ -7,15 +7,14 @@
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# add repository
|
||||
apt-add-repository ppa:ondrej/php -y
|
||||
apt-get update
|
||||
|
||||
# Install PHP
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
|
||||
php_versions=$(jq -r '.php.versions[]' $toolset)
|
||||
php_versions=$(get_toolset_value '.php.versions[]')
|
||||
|
||||
for version in $php_versions; do
|
||||
echo "Installing PHP $version"
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
## File: pipx-packages.sh
|
||||
## Desc: Install tools via pipx
|
||||
################################################################################
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
export PATH="$PATH:/opt/pipx_bin"
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
pipx_packages=$(jq -r ".pipx[] .package" $toolset)
|
||||
pipx_packages=$(get_toolset_value ".pipx[] .package")
|
||||
|
||||
for package in $pipx_packages; do
|
||||
python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset)
|
||||
python_version=$(get_toolset_value ".pipx[] | select(.package == \"$package\") .python")
|
||||
if [ "$python_version" != "null" ]; then
|
||||
python_path="/opt/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version"
|
||||
echo "Install $package into python $python_path"
|
||||
|
||||
@@ -76,10 +76,7 @@ function InstallPyPy
|
||||
uri="https://downloads.python.org/pypy/"
|
||||
download_with_retries $uri "/tmp" "pypyUrls.html" compressed
|
||||
pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')"
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
|
||||
|
||||
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
|
||||
|
||||
for toolsetVersion in $toolsetVersions; do
|
||||
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
|
||||
|
||||
@@ -13,10 +13,9 @@ sudo gem update --system
|
||||
apt-get install -y libz-dev openssl libssl-dev
|
||||
|
||||
echo "Install Ruby from toolset..."
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
PACKAGE_TAR_NAMES=$(curl -s "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
TOOLSET_VERSIONS=$(jq -r '.toolcache[] | select(.name | contains("Ruby")) | .versions[]' $toolset)
|
||||
PLATFORM_VERSION=$(jq -r '.toolcache[] | select(.name | contains("Ruby")) | .platform_version' $toolset)
|
||||
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .versions[]')
|
||||
PLATFORM_VERSION=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .platform_version')
|
||||
RUBY_PATH="$AGENT_TOOLSDIRECTORY/Ruby"
|
||||
|
||||
echo "Check if Ruby hostedtoolcache folder exist..."
|
||||
|
||||
Reference in New Issue
Block a user