@@ -19,18 +19,36 @@ cat <<EOF >> gradle.properties
1919org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=1024m
2020EOF
2121
22- export ANDROID_HOME=/tmp /Android/Sdk
22+ export ANDROID_HOME=$HOME /Android/Sdk
2323mkdir -p " ${ANDROID_HOME} /cmdline-tools"
2424curl -Ls -o cmdline.zip \
2525 " https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip"
2626unzip -qd " ${ANDROID_HOME} /cmdline-tools" cmdline.zip
2727rm cmdline.zip
2828mv " ${ANDROID_HOME} /cmdline-tools/cmdline-tools" " ${ANDROID_HOME} /cmdline-tools/latest"
2929(yes || true) | " ${ANDROID_HOME} /cmdline-tools/latest/bin/sdkmanager" --licenses
30+
31+ # Bazel/android_rules requires build-tools at least version 35.0.0 and, unlike
32+ # gradle, won't download anything for itself.
33+ # TODO(jdcormie): Keep this version in sync with AGP's default and any
34+ # `buildToolsVersion` config.
35+ " ${ANDROID_HOME} /cmdline-tools/latest/bin/sdkmanager" --install " build-tools;35.0.1"
36+
37+ # Bazelisk takes care of installing the proper version(s) of Bazel.
38+ mkdir -p /tmp/bazelisk
39+ curl -Ls -o /tmp/bazelisk/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-amd64
40+ chmod +x /tmp/bazelisk/bazelisk
41+ export PATH=/tmp/bazelisk:$PATH
42+
43+ # TODO(jdcormie): Use the same SDK version as build.gradle's compileSdkVersion.
44+ " ${ANDROID_HOME} /cmdline-tools/latest/bin/sdkmanager" --install " platforms;android-34"
45+ bazelisk build \
46+ //android
47+
3048curl -Ls https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.tar.gz | \
3149 tar xz -C /tmp
3250export PATH=/tmp/cmake-3.26.3-linux-x86_64/bin:$PATH
33-
51+
3452# Proto deps
3553buildscripts/make_dependencies.sh
3654
@@ -99,52 +117,52 @@ new_apk_size="$(stat --printf=%s $HELLO_WORLD_OUTPUT_DIR/apk/release/app-release
99117
100118
101119# Get the APK size and dex count stats using the pull request base commit
102- cd $BASE_DIR /github/grpc-java
103- ./gradlew clean
104- git checkout HEAD^
105- ./gradlew --stop # use a new daemon to build the previous commit
106- GRADLE_FLAGS=" ${GRADLE_FLAGS} -PskipCodegen=true" # skip codegen for build from previous commit since it wasn't built with --std=c++14 when making this change
107- ./gradlew publishToMavenLocal $GRADLE_FLAGS
108- cd examples/android/helloworld/
109- ../../gradlew build $GRADLE_FLAGS
110-
111- read -r ignored old_dex_count < \
112- <( " ${ANDROID_HOME} /cmdline-tools/latest/bin/apkanalyzer" dex references app/build/outputs/apk/release/app-release-unsigned.apk)
113-
114- set +x
115- all_old_methods=` " ${ANDROID_HOME} /cmdline-tools/latest/bin/apkanalyzer" dex packages --proguard-mapping app/build/outputs/mapping/release/mapping.txt app/build/outputs/apk/release/app-release-unsigned.apk | grep ^M | cut -f4 | sort`
116- set -x
117-
118- old_apk_size=" $( stat --printf=%s app/build/outputs/apk/release/app-release-unsigned.apk) "
119-
120- dex_count_delta=" $(( new_dex_count- old_dex_count)) "
121-
122- apk_size_delta=" $(( new_apk_size- old_apk_size)) "
123-
124- set +x
125- dex_method_diff=` diff -u <( echo " $all_old_methods " ) <( echo " $all_new_methods " ) || true`
126- set -x
127-
128- if [[ -n " $dex_method_diff " ]]
129- then
130- echo " Method diff: ${dex_method_diff} "
131- fi
132-
133- # Update the statuses with the deltas
134-
135- set +x
136- gsutil cp gs://grpc-testing-secrets/github_credentials/oauth_token.txt ~ /
137-
138- desc=" New DEX reference count: $( printf " %'d" " $new_dex_count " ) (delta: $( printf " %'d" " $dex_count_delta " ) )"
139- echo " Setting status: $desc "
140- curl -f -s -X POST -H " Content-Type: application/json" \
141- -H " Authorization: token $( cat ~ /oauth_token.txt | tr -d ' \n' ) " \
142- -d ' {"state": "success", "context": "android/dex_diff", "description": "' " ${desc} " ' "}' \
143- " https://api.github.com/repos/grpc/grpc-java/statuses/${KOKORO_GITHUB_PULL_REQUEST_COMMIT} "
144-
145- desc=" New APK size in bytes: $( printf " %'d" " $new_apk_size " ) (delta: $( printf " %'d" " $apk_size_delta " ) )"
146- echo " Setting status: $desc "
147- curl -f -s -X POST -H " Content-Type: application/json" \
148- -H " Authorization: token $( cat ~ /oauth_token.txt | tr -d ' \n' ) " \
149- -d ' {"state": "success", "context": "android/apk_diff", "description": "' " ${desc} " ' "}' \
150- " https://api.github.com/repos/grpc/grpc-java/statuses/${KOKORO_GITHUB_PULL_REQUEST_COMMIT} "
120+ # cd $BASE_DIR/github/grpc-java
121+ # ./gradlew clean
122+ # git checkout HEAD^
123+ # ./gradlew --stop # use a new daemon to build the previous commit
124+ # GRADLE_FLAGS="${GRADLE_FLAGS} -PskipCodegen=true" # skip codegen for build from previous commit since it wasn't built with --std=c++14 when making this change
125+ # ./gradlew publishToMavenLocal $GRADLE_FLAGS
126+ # cd examples/android/helloworld/
127+ # ../../gradlew build $GRADLE_FLAGS
128+
129+ # read -r ignored old_dex_count < \
130+ # <("${ANDROID_HOME}/cmdline-tools/latest/bin/apkanalyzer" dex references app/build/outputs/apk/release/app-release-unsigned.apk)
131+
132+ # set +x
133+ # all_old_methods=`"${ANDROID_HOME}/cmdline-tools/latest/bin/apkanalyzer" dex packages --proguard-mapping app/build/outputs/mapping/release/mapping.txt app/build/outputs/apk/release/app-release-unsigned.apk | grep ^M | cut -f4 | sort`
134+ # set -x
135+
136+ # old_apk_size="$(stat --printf=%s app/build/outputs/apk/release/app-release-unsigned.apk)"
137+
138+ # dex_count_delta="$((new_dex_count-old_dex_count))"
139+
140+ # apk_size_delta="$((new_apk_size-old_apk_size))"
141+ #
142+ # set +x
143+ # dex_method_diff=`diff -u <(echo "$all_old_methods") <(echo "$all_new_methods") || true`
144+ # set -x
145+ #
146+ # if [[ -n "$dex_method_diff" ]]
147+ # then
148+ # echo "Method diff: ${dex_method_diff}"
149+ # fi
150+ #
151+ # # Update the statuses with the deltas
152+ #
153+ # set +x
154+ # gsutil cp gs://grpc-testing-secrets/github_credentials/oauth_token.txt ~/
155+ #
156+ # desc="New DEX reference count: $(printf "%'d" "$new_dex_count") (delta: $(printf "%'d" "$dex_count_delta"))"
157+ # echo "Setting status: $desc"
158+ # curl -f -s -X POST -H "Content-Type: application/json" \
159+ # -H "Authorization: token $(cat ~/oauth_token.txt | tr -d '\n')" \
160+ # -d '{"state": "success", "context": "android/dex_diff", "description": "'"${desc}"'"}' \
161+ # "https://api.github.com/repos/grpc/grpc-java/statuses/${KOKORO_GITHUB_PULL_REQUEST_COMMIT}"
162+ #
163+ # desc="New APK size in bytes: $(printf "%'d" "$new_apk_size") (delta: $(printf "%'d" "$apk_size_delta"))"
164+ # echo "Setting status: $desc"
165+ # curl -f -s -X POST -H "Content-Type: application/json" \
166+ # -H "Authorization: token $(cat ~/oauth_token.txt | tr -d '\n')" \
167+ # -d '{"state": "success", "context": "android/apk_diff", "description": "'"${desc}"'"}' \
168+ # "https://api.github.com/repos/grpc/grpc-java/statuses/${KOKORO_GITHUB_PULL_REQUEST_COMMIT}"
0 commit comments