You've already forked setup-dotnet
							
							
				mirror of
				https://github.com/actions/setup-dotnet.git
				synced 2025-11-04 08:56:35 +07:00 
			
		
		
		
	Updating Install Scripts (#48)
* Updating install scripts * Ignore items in node_modules by default * Updating scripts updated by commit-hooks * Modifying the correct files
This commit is contained in:
		
				
					committed by
					
						
						Zachary Eisinger
					
				
			
			
				
	
			
			
			
						parent
						
							e1b1954735
						
					
				
				
					commit
					719c622d48
				
			
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -90,3 +90,4 @@ typings/
 | 
			
		||||
 | 
			
		||||
# DynamoDB Local files
 | 
			
		||||
.dynamodb/
 | 
			
		||||
node_modules
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										91
									
								
								externals/install-dotnet.ps1
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										91
									
								
								externals/install-dotnet.ps1
									
									
									
									
										vendored
									
									
								
							@ -37,10 +37,7 @@
 | 
			
		||||
.PARAMETER SharedRuntime
 | 
			
		||||
    This parameter is obsolete and may be removed in a future version of this script.
 | 
			
		||||
    The recommended alternative is '-Runtime dotnet'.
 | 
			
		||||
 | 
			
		||||
    Default: false
 | 
			
		||||
    Installs just the shared runtime bits, not the entire SDK.
 | 
			
		||||
    This is equivalent to specifying `-Runtime dotnet`.
 | 
			
		||||
.PARAMETER Runtime
 | 
			
		||||
    Installs just a shared runtime, not the entire SDK.
 | 
			
		||||
    Possible values:
 | 
			
		||||
@ -77,11 +74,15 @@
 | 
			
		||||
    Skips installing non-versioned files if they already exist, such as dotnet.exe.
 | 
			
		||||
.PARAMETER NoCdn
 | 
			
		||||
    Disable downloading from the Azure CDN, and use the uncached feed directly.
 | 
			
		||||
.PARAMETER JSonFile
 | 
			
		||||
    Determines the SDK version from a user specified global.json file
 | 
			
		||||
    Note: global.json must have a value for 'SDK:Version'
 | 
			
		||||
#>
 | 
			
		||||
[cmdletbinding()]
 | 
			
		||||
param(
 | 
			
		||||
   [string]$Channel="LTS",
 | 
			
		||||
   [string]$Version="Latest",
 | 
			
		||||
   [string]$JSonFile,
 | 
			
		||||
   [string]$InstallDir="<auto>",
 | 
			
		||||
   [string]$Architecture="<auto>",
 | 
			
		||||
   [ValidateSet("dotnet", "aspnetcore", "windowsdesktop", IgnoreCase = $false)]
 | 
			
		||||
@ -258,7 +259,6 @@ function GetHTTPResponse([Uri] $Uri)
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Coherent) {
 | 
			
		||||
    Say-Invocation $MyInvocation
 | 
			
		||||
 | 
			
		||||
@ -304,20 +304,64 @@ function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Co
 | 
			
		||||
    return $VersionInfo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version) {
 | 
			
		||||
function Parse-Jsonfile-For-Version([string]$JSonFile) {
 | 
			
		||||
    Say-Invocation $MyInvocation
 | 
			
		||||
 | 
			
		||||
    switch ($Version.ToLower()) {
 | 
			
		||||
        { $_ -eq "latest" } {
 | 
			
		||||
            $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $False
 | 
			
		||||
            return $LatestVersionInfo.Version
 | 
			
		||||
    If (-Not (Test-Path $JSonFile)) {
 | 
			
		||||
        throw "Unable to find '$JSonFile'"
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
    try {
 | 
			
		||||
        $JSonContent = Get-Content($JSonFile) -Raw | ConvertFrom-Json | Select-Object -expand "sdk" -ErrorAction SilentlyContinue
 | 
			
		||||
    }
 | 
			
		||||
    catch {
 | 
			
		||||
        throw "Json file unreadable: '$JSonFile'"
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
    if ($JSonContent) {
 | 
			
		||||
        try {
 | 
			
		||||
            $JSonContent.PSObject.Properties | ForEach-Object {
 | 
			
		||||
                $PropertyName = $_.Name
 | 
			
		||||
                if ($PropertyName -eq "version") {
 | 
			
		||||
                    $Version = $_.Value
 | 
			
		||||
                    Say-Verbose "Version = $Version"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        { $_ -eq "coherent" } {
 | 
			
		||||
            $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $True
 | 
			
		||||
            return $LatestVersionInfo.Version
 | 
			
		||||
        catch {
 | 
			
		||||
            throw "Unable to parse the SDK node in '$JSonFile'"
 | 
			
		||||
            exit 0
 | 
			
		||||
        }
 | 
			
		||||
        default { return $Version }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        throw "Unable to find the SDK node in '$JSonFile'"
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
    If ($Version -eq $null) {
 | 
			
		||||
        throw "Unable to find the SDK:version node in '$JSonFile'"
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
    return $Version
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version, [string]$JSonFile) {
 | 
			
		||||
    Say-Invocation $MyInvocation
 | 
			
		||||
 | 
			
		||||
    if (-not $JSonFile) {
 | 
			
		||||
        switch ($Version.ToLower()) {
 | 
			
		||||
            { $_ -eq "latest" } {
 | 
			
		||||
                $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $False
 | 
			
		||||
                return $LatestVersionInfo.Version
 | 
			
		||||
            }
 | 
			
		||||
            { $_ -eq "coherent" } {
 | 
			
		||||
                $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $True
 | 
			
		||||
                return $LatestVersionInfo.Version
 | 
			
		||||
            }
 | 
			
		||||
            default { return $Version }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        return Parse-Jsonfile-For-Version $JSonFile
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -382,23 +426,6 @@ function Resolve-Installation-Path([string]$InstallDir) {
 | 
			
		||||
    return $InstallDir
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Get-Version-Info-From-Version-File([string]$InstallRoot, [string]$RelativePathToVersionFile) {
 | 
			
		||||
    Say-Invocation $MyInvocation
 | 
			
		||||
 | 
			
		||||
    $VersionFile = Join-Path -Path $InstallRoot -ChildPath $RelativePathToVersionFile
 | 
			
		||||
    Say-Verbose "Local version file: $VersionFile"
 | 
			
		||||
 | 
			
		||||
    if (Test-Path $VersionFile) {
 | 
			
		||||
        $VersionText = cat $VersionFile
 | 
			
		||||
        Say-Verbose "Local version file text: $VersionText"
 | 
			
		||||
        return Get-Version-Info-From-Version-Text $VersionText
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Say-Verbose "Local version file not found."
 | 
			
		||||
 | 
			
		||||
    return $null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) {
 | 
			
		||||
    Say-Invocation $MyInvocation
 | 
			
		||||
 | 
			
		||||
@ -534,7 +561,7 @@ function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot, [string]$BinFolde
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
 | 
			
		||||
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version
 | 
			
		||||
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version -JSonFile $JSonFile
 | 
			
		||||
$DownloadLink = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
 | 
			
		||||
$LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										125
									
								
								externals/install-dotnet.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										125
									
								
								externals/install-dotnet.sh
									
									
									
									
										vendored
									
									
								
							@ -435,11 +435,52 @@ get_latest_version_info() {
 | 
			
		||||
    return $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# args:
 | 
			
		||||
# json_file - $1
 | 
			
		||||
parse_jsonfile_for_version() {
 | 
			
		||||
    eval $invocation
 | 
			
		||||
 | 
			
		||||
    local json_file="$1"
 | 
			
		||||
    if [ ! -f "$json_file" ]; then
 | 
			
		||||
        say_err "Unable to find \`$json_file\`"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    sdk_section=$(cat $json_file | awk '/"sdk"/,/}/')
 | 
			
		||||
    if [ -z "$sdk_section" ]; then
 | 
			
		||||
        say_err "Unable to parse the SDK node in \`$json_file\`"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    sdk_list=$(echo $sdk_section | awk -F"[{}]" '{print $2}')
 | 
			
		||||
    sdk_list=${sdk_list//[\" ]/}
 | 
			
		||||
    sdk_list=${sdk_list//,/$'\n'}
 | 
			
		||||
    sdk_list="$(echo -e "${sdk_list}" | tr -d '[[:space:]]')"
 | 
			
		||||
 | 
			
		||||
    local version_info=""
 | 
			
		||||
    while read -r line; do
 | 
			
		||||
      IFS=:
 | 
			
		||||
      while read -r key value; do
 | 
			
		||||
        if [[ "$key" == "version" ]]; then
 | 
			
		||||
          version_info=$value
 | 
			
		||||
        fi
 | 
			
		||||
      done <<< "$line"
 | 
			
		||||
    done <<< "$sdk_list"
 | 
			
		||||
    if [ -z "$version_info" ]; then
 | 
			
		||||
        say_err "Unable to find the SDK:version node in \`$json_file\`"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo "$version_info"
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# args:
 | 
			
		||||
# azure_feed - $1
 | 
			
		||||
# channel - $2
 | 
			
		||||
# normalized_architecture - $3
 | 
			
		||||
# version - $4
 | 
			
		||||
# json_file - $5
 | 
			
		||||
get_specific_version_from_version() {
 | 
			
		||||
    eval $invocation
 | 
			
		||||
 | 
			
		||||
@ -447,27 +488,35 @@ get_specific_version_from_version() {
 | 
			
		||||
    local channel="$2"
 | 
			
		||||
    local normalized_architecture="$3"
 | 
			
		||||
    local version="$(to_lowercase "$4")"
 | 
			
		||||
    local json_file="$5"
 | 
			
		||||
 | 
			
		||||
    case "$version" in
 | 
			
		||||
        latest)
 | 
			
		||||
            local version_info
 | 
			
		||||
            version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" false)" || return 1
 | 
			
		||||
            say_verbose "get_specific_version_from_version: version_info=$version_info"
 | 
			
		||||
            echo "$version_info" | get_version_from_version_info
 | 
			
		||||
            return 0
 | 
			
		||||
            ;;
 | 
			
		||||
        coherent)
 | 
			
		||||
            local version_info
 | 
			
		||||
            version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" true)" || return 1
 | 
			
		||||
            say_verbose "get_specific_version_from_version: version_info=$version_info"
 | 
			
		||||
            echo "$version_info" | get_version_from_version_info
 | 
			
		||||
            return 0
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            echo "$version"
 | 
			
		||||
            return 0
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
    if [ -z "$json_file" ]; then
 | 
			
		||||
        case "$version" in
 | 
			
		||||
            latest)
 | 
			
		||||
                local version_info
 | 
			
		||||
                version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" false)" || return 1
 | 
			
		||||
                say_verbose "get_specific_version_from_version: version_info=$version_info"
 | 
			
		||||
                echo "$version_info" | get_version_from_version_info
 | 
			
		||||
                return 0
 | 
			
		||||
                ;;
 | 
			
		||||
            coherent)
 | 
			
		||||
                local version_info
 | 
			
		||||
                version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" true)" || return 1
 | 
			
		||||
                say_verbose "get_specific_version_from_version: version_info=$version_info"
 | 
			
		||||
                echo "$version_info" | get_version_from_version_info
 | 
			
		||||
                return 0
 | 
			
		||||
                ;;
 | 
			
		||||
            *)
 | 
			
		||||
                echo "$version"
 | 
			
		||||
                return 0
 | 
			
		||||
                ;;
 | 
			
		||||
        esac
 | 
			
		||||
    else
 | 
			
		||||
        local version_info
 | 
			
		||||
        version_info="$(parse_jsonfile_for_version "$json_file")" || return 1
 | 
			
		||||
        echo "$version_info"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# args:
 | 
			
		||||
@ -558,24 +607,6 @@ resolve_installation_path() {
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# args:
 | 
			
		||||
# install_root - $1
 | 
			
		||||
get_installed_version_info() {
 | 
			
		||||
    eval $invocation
 | 
			
		||||
 | 
			
		||||
    local install_root="$1"
 | 
			
		||||
    local version_file="$(combine_paths "$install_root" "$local_version_file_relative_path")"
 | 
			
		||||
    say_verbose "Local version file: $version_file"
 | 
			
		||||
    if [ ! -z "$version_file" ] | [ -r "$version_file" ]; then
 | 
			
		||||
        local version_info="$(cat "$version_file")"
 | 
			
		||||
        echo "$version_info"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    say_verbose "Local version file not found."
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# args:
 | 
			
		||||
# relative_or_absolute_path - $1
 | 
			
		||||
get_absolute_path() {
 | 
			
		||||
@ -724,7 +755,7 @@ calculate_vars() {
 | 
			
		||||
    normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")"
 | 
			
		||||
    say_verbose "normalized_architecture=$normalized_architecture"
 | 
			
		||||
 | 
			
		||||
    specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version")"
 | 
			
		||||
    specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version" "$json_file")"
 | 
			
		||||
    say_verbose "specific_version=$specific_version"
 | 
			
		||||
    if [ -z "$specific_version" ]; then
 | 
			
		||||
        say_err "Could not resolve version information."
 | 
			
		||||
@ -826,6 +857,7 @@ temporary_file_template="${TMPDIR:-/tmp}/dotnet.XXXXXXXXX"
 | 
			
		||||
 | 
			
		||||
channel="LTS"
 | 
			
		||||
version="Latest"
 | 
			
		||||
json_file=""
 | 
			
		||||
install_dir="<auto>"
 | 
			
		||||
architecture="<auto>"
 | 
			
		||||
dry_run=false
 | 
			
		||||
@ -912,6 +944,10 @@ do
 | 
			
		||||
            runtime_id="$1"
 | 
			
		||||
            non_dynamic_parameters+=" $name "\""$1"\"""
 | 
			
		||||
            ;;
 | 
			
		||||
        --jsonfile|-[Jj][Ss]on[Ff]ile)
 | 
			
		||||
            shift
 | 
			
		||||
            json_file="$1"
 | 
			
		||||
            ;;
 | 
			
		||||
        --skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles)
 | 
			
		||||
            override_non_versioned_files=false
 | 
			
		||||
            non_dynamic_parameters+=" $name"
 | 
			
		||||
@ -953,22 +989,25 @@ do
 | 
			
		||||
            echo "          Possible values:"
 | 
			
		||||
            echo "          - dotnet     - the Microsoft.NETCore.App shared runtime"
 | 
			
		||||
            echo "          - aspnetcore - the Microsoft.AspNetCore.App shared runtime"
 | 
			
		||||
            echo "  --skip-non-versioned-files         Skips non-versioned files if they already exist, such as the dotnet executable."
 | 
			
		||||
            echo "      -SkipNonVersionedFiles"
 | 
			
		||||
            echo "  --dry-run,-DryRun                  Do not perform installation. Display download link."
 | 
			
		||||
            echo "  --no-path, -NoPath                 Do not set PATH for the current process."
 | 
			
		||||
            echo "  --verbose,-Verbose                 Display diagnostics information."
 | 
			
		||||
            echo "  --azure-feed,-AzureFeed            Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user."
 | 
			
		||||
            echo "  --uncached-feed,-UncachedFeed      Uncached feed location. This parameter typically is not changed by the user."
 | 
			
		||||
            echo "  --no-cdn,-NoCdn                    Disable downloading from the Azure CDN, and use the uncached feed directly."
 | 
			
		||||
            echo "  --feed-credential,-FeedCredential  Azure feed shared access token. This parameter typically is not specified."
 | 
			
		||||
            echo "  --skip-non-versioned-files         Skips non-versioned files if they already exist, such as the dotnet executable."
 | 
			
		||||
            echo "      -SkipNonVersionedFiles"
 | 
			
		||||
            echo "  --no-cdn,-NoCdn                    Disable downloading from the Azure CDN, and use the uncached feed directly."
 | 
			
		||||
            echo "  --jsonfile <JSONFILE>              Determines the SDK version from a user specified global.json file."
 | 
			
		||||
            echo "                                     Note: global.json must have a value for 'SDK:Version'"
 | 
			
		||||
            echo "  --runtime-id                       Installs the .NET Tools for the given platform (use linux-x64 for portable linux)."
 | 
			
		||||
            echo "      -RuntimeId"
 | 
			
		||||
            echo "  -?,--?,-h,--help,-Help             Shows this help message"
 | 
			
		||||
            echo ""
 | 
			
		||||
            echo "Obsolete parameters:"
 | 
			
		||||
            echo "  --shared-runtime                   The recommended alternative is '--runtime dotnet'."
 | 
			
		||||
            echo "      -SharedRuntime                 Installs just the shared runtime bits, not the entire SDK."
 | 
			
		||||
            echo "                                     This parameter is obsolete and may be removed in a future version of this script."
 | 
			
		||||
            echo "                                     Installs just the shared runtime bits, not the entire SDK."
 | 
			
		||||
            echo ""
 | 
			
		||||
            echo "Install Location:"
 | 
			
		||||
            echo "  Location is chosen in following order:"
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,9 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
			
		||||
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
			
		||||
    return new (P || (P = Promise))(function (resolve, reject) {
 | 
			
		||||
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
			
		||||
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
 | 
			
		||||
        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,9 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
			
		||||
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
			
		||||
    return new (P || (P = Promise))(function (resolve, reject) {
 | 
			
		||||
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
			
		||||
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
 | 
			
		||||
        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user