Commit 845b559a authored by David McFarland's avatar David McFarland
Browse files

dotnet/update.sh: use sdk patch version instead of runtime

There's a one:many relationship between runtimes and sdks.  This allows
fetching a specific SDK (e.g. 8.0.102 vs 8.0.201), even when both use
the same runtime (8.0.2).
parent 6b047e39
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ release () {
  local content="$1"
  local version="$2"

  jq -r '.releases[] | select(."release-version" == "'"$version"'")' <<< "$content"
  jq -r '.releases[] | select(.sdks[] | ."version" == "'"$version"'")' <<< "$content"
}

release_files () {
@@ -18,6 +18,14 @@ release_files () {
  jq -r '[."'"$type"'".files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
}

sdk_files () {
  local release="$1"
  local version="$2"

  jq -r '[.sdks[] | select(.version == "'"$version"'") | .files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
}


release_platform_attr () {
  local release_files="$1"
  local platform="$2"
@@ -321,13 +329,13 @@ Examples:
    # Then get the json file and parse it to find the latest patch release.
    major_minor=$(sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' <<< "$sem_version")
    content=$(curl -sL https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/"$major_minor"/releases.json)
    major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-release"' <<< "$content")
    major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-sdk"' <<< "$content")
    major_minor_underscore=${major_minor/./_}

    release_content=$(release "$content" "$major_minor_patch")
    sdk_version=$major_minor_patch
    release_content=$(release "$content" "$sdk_version")
    aspnetcore_version=$(jq -r '."aspnetcore-runtime".version' <<< "$release_content")
    runtime_version=$(jq -r '.runtime.version' <<< "$release_content")
    sdk_version=$(jq -r '.sdk.version' <<< "$release_content")

    # If patch was not specified, check if the package is already the latest version
    # If it is, exit early
@@ -346,7 +354,7 @@ Examples:

    aspnetcore_files="$(release_files "$release_content" "aspnetcore-runtime")"
    runtime_files="$(release_files "$release_content" "runtime")"
    sdk_files="$(release_files "$release_content" "sdk")"
    sdk_files="$(sdk_files "$release_content" "$sdk_version")"

    channel_version=$(jq -r '."channel-version"' <<< "$content")
    support_phase=$(jq -r '."support-phase"' <<< "$content")