Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 1 | #!/bin/bash |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 2 | |
| 3 | function echoAndDo() { |
| 4 | echo "$@" |
| 5 | eval "$@" |
| 6 | } |
| 7 | |
Jeff Gaston | b557296 | 2023-09-07 16:49:51 -0400 | [diff] [blame] | 8 | # Versions that the user should update when running this script |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 9 | echo Getting Studio version and link |
Fred Sladkey | 62e9481 | 2024-09-15 21:38:38 -0400 | [diff] [blame] | 10 | AGP_VERSION=${1:-8.8.0-alpha01} |
| 11 | STUDIO_VERSION_STRING=${2:-"Android Studio Ladybug Feature Drop | 2024.2.2 Canary 1"} |
Jeff Gaston | b557296 | 2023-09-07 16:49:51 -0400 | [diff] [blame] | 12 | |
| 13 | # Get studio version number from version name |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 14 | STUDIO_IFRAME_LINK=`curl "https://developer.android.com/studio/archive.html" | grep "<iframe " | sed "s/.* src=\"\([^\"]*\)\".*/\1/g"` |
| 15 | echo iframe link $STUDIO_IFRAME_LINK |
| 16 | STUDIO_IFRAME_REDIRECT=`curl -s $STUDIO_IFRAME_LINK | grep href | sed 's/.*href="\([^"]*\)".*/\1/g'` |
| 17 | echo iframe redirect $STUDIO_IFRAME_REDIRECT |
| 18 | STUDIO_LINK=`curl -s $STUDIO_IFRAME_REDIRECT | grep -C30 "$STUDIO_VERSION_STRING" | grep Linux | tail -n 1 | sed 's/.*a href="\(.*\).*"/\1/g' | sed 's/>.*//'` |
| 19 | echo STUDIO_LINK: $STUDIO_LINK |
| 20 | if [ "$STUDIO_LINK" == "" ]; then |
| 21 | echo "Error: STUDIO_LINK must not be empty. Open this script and look for parsing errors. Does studio version '$STUDIO_VERSION_STRING' exist?" |
| 22 | exit 1 |
| 23 | fi |
Aurimas Liutikas | e54847d | 2021-05-19 10:58:12 -0700 | [diff] [blame] | 24 | STUDIO_VERSION=`echo $STUDIO_LINK | sed "s/.*ide-zips\/\(.*\)\/android-studio-.*/\1/g"` |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 25 | |
| 26 | # Update AGP |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 27 | ARTIFACTS_TO_DOWNLOAD="com.android.tools.build:gradle:$AGP_VERSION," |
| 28 | ARTIFACTS_TO_DOWNLOAD+="androidx.databinding:viewbinding:$AGP_VERSION," |
Fred Sladkey | 2875ccf | 2023-11-06 16:01:31 -0500 | [diff] [blame] | 29 | ARTIFACTS_TO_DOWNLOAD+="com.android.kotlin.multiplatform.library:com.android.kotlin.multiplatform.library.gradle.plugin:$AGP_VERSION," |
Fred Sladkey | 1e38ee3 | 2024-07-30 13:55:01 -0400 | [diff] [blame] | 30 | ARTIFACTS_TO_DOWNLOAD+="com.android.settings:com.android.settings.gradle.plugin:$AGP_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 31 | AAPT2_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/build/group-index.xml" | grep aapt2-proto | sed 's/.*versions="\(.*\)"\/>/\1/g'` |
| 32 | AAPT2_VERSION=`echo $AAPT2_VERSIONS | sed "s/.*\($AGP_VERSION-[0-9]*\).*/\1/g"` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 33 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:linux," |
| 34 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:osx," |
| 35 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 36 | LINT_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/lint/group-index.xml" | grep lint | sed 's/.*versions="\(.*\)"\/>/\1/g'` |
| 37 | LINT_MINOR_VERSION=`echo $AGP_VERSION | sed 's/[0-9]\+\.\(.*\)/\1/g'` |
| 38 | LINT_VERSION=`echo $LINT_VERSIONS | sed "s/.*[,| ]\([0-9]\+\.$LINT_MINOR_VERSION\).*/\1/g"` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 39 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint:$LINT_VERSION," |
| 40 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-tests:$LINT_VERSION," |
| 41 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-gradle:$LINT_VERSION," |
Aurimas Liutikas | 39f2226 | 2022-11-03 09:00:24 -0700 | [diff] [blame] | 42 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools:ninepatch:$LINT_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 43 | |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 44 | # Update libs.versions.toml |
| 45 | echo Updating dependency versions |
Aurimas Liutikas | 78273a3 | 2021-07-08 16:49:13 -0700 | [diff] [blame] | 46 | sed -i "s/androidGradlePlugin = .*/androidGradlePlugin = \"$AGP_VERSION\"/g" gradle/libs.versions.toml |
Jeff Gaston | a4baa26 | 2021-11-02 15:29:55 -0400 | [diff] [blame] | 47 | sed -i "s/androidLint = \".*/androidLint = \"$LINT_VERSION\"/g" gradle/libs.versions.toml |
Aurimas Liutikas | 78273a3 | 2021-07-08 16:49:13 -0700 | [diff] [blame] | 48 | sed -i "s/androidStudio = .*/androidStudio = \"$STUDIO_VERSION\"/g" gradle/libs.versions.toml |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 49 | |
Fred Sladkey | 1e38ee3 | 2024-07-30 13:55:01 -0400 | [diff] [blame] | 50 | # update settings.gradle |
Scott Pollom | 52a2425 | 2024-08-29 17:42:47 +0000 | [diff] [blame] | 51 | sed -i "s/com.android.settings:com.android.settings.gradle.plugin:[0-9a-z\.\-]*/com.android.settings:com.android.settings.gradle.plugin:$AGP_VERSION\")/g" settings.gradle |
Fred Sladkey | 1e38ee3 | 2024-07-30 13:55:01 -0400 | [diff] [blame] | 52 | |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 53 | # Pull all UTP artifacts for ADT version |
| 54 | ADT_VERSION=${3:-$LINT_VERSION} |
Aurimas Liutikas | b0470e5 | 2022-01-31 15:09:55 -0800 | [diff] [blame] | 55 | while read line |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 56 | do |
| 57 | ARTIFACT=`echo $line | sed 's/<\([[:lower:]-]\+\).*/\1/g'` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 58 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.utp:$ARTIFACT:$ADT_VERSION," |
Aurimas Liutikas | b0470e5 | 2022-01-31 15:09:55 -0800 | [diff] [blame] | 59 | done < <(curl -sL "https://dl.google.com/android/maven2/com/android/tools/utp/group-index.xml" \ |
| 60 | | tail -n +3 \ |
| 61 | | head -n -1) |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 62 | |
Aurimas Liutikas | 36de1fe | 2023-11-29 15:12:02 -0800 | [diff] [blame] | 63 | ATP_VERSION=${4:-0.0.9-alpha02} |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 64 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-test-plugin:$ATP_VERSION," |
| 65 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:launcher:$ATP_VERSION," |
| 66 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-driver-instrumentation:$ATP_VERSION," |
| 67 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:core:$ATP_VERSION" |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 68 | |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 69 | # Download all the artifacts |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 70 | echoAndDo ./development/importMaven/importMaven.sh "$ARTIFACTS_TO_DOWNLOAD" |