From 1f759a35de3a92566649aa7a247b42e7a2ae52a7 Mon Sep 17 00:00:00 2001 From: dneto Date: Mon, 26 Jan 2026 16:38:30 -0500 Subject: [PATCH 1/2] Convert Kokoro Android CMake build to Docker This improves consistency with other Kokoro-based builds. The Docker image already has CMake and the Android NDK. BUG=crbug.com/478302715 --- kokoro/android/build-docker.sh | 63 ++++++++++++++++++++++++++ kokoro/android/build.sh | 82 ++++++++++------------------------ 2 files changed, 87 insertions(+), 58 deletions(-) create mode 100755 kokoro/android/build-docker.sh diff --git a/kokoro/android/build-docker.sh b/kokoro/android/build-docker.sh new file mode 100755 index 00000000..4542c684 --- /dev/null +++ b/kokoro/android/build-docker.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Copyright 2025 The Amber Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# ROOT_DIR is set to the repo source root directory +# The current directory is ROOT_DIR. +# +set -e # fail on error +set -x # display commands + +# Check the assumption about the current directory +grep "Amber is a multi-API shader test framework" README.md >/dev/null + +# This is required to run any git command in the docker since owner will +# have changed between the clone environment, and the docker container. +# Opt out of the ownership check; we need this for the Amber repo and +# third_party/spirv-tools and possibly others. +git config --global --add safe.directory '*' + +. /bin/using.sh +using ndk-r29 # Also sets ANDROID_NDK_HOME +using ninja-1.10.0 +using python-3.12.4 +using cmake-3.31.2 + +./tools/git-sync-deps + +TOOLCHAIN_PATH="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" +ANDROID_STL="c++_static" +ANDROID_PLATFORM="android-24" +ANDROID_ABI="arm64-v8a" + +BUILD_TYPE="Release" + +[ -d build ] && rm -rf build +mkdir build +cd build + +# Invoke the build. +echo "$(date): Starting build..." +cmake -GNinja \ + "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" \ + "-DANDROID_ABI=$ANDROID_ABI" \ + "-DANDROID_PLATFORM=$ANDROID_PLATFORM" \ + "-DANDROID_NDK=$ANDROID_NDK_HOME" \ + "-DANDROID_STL=$ANDROID_STL" \ + "-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_PATH" \ + .. + +echo "$(date): Build everything..." +ninja +echo "$(date): Build completed." diff --git a/kokoro/android/build.sh b/kokoro/android/build.sh index 68788fd0..77a1b619 100755 --- a/kokoro/android/build.sh +++ b/kokoro/android/build.sh @@ -1,10 +1,11 @@ -# Copyright 2025 The Amber Authors. +#!/bin/bash +# Copyright 2026 The Amber Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -12,64 +13,29 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -e # Fail on error -set -x # Display commands as run +# Fail on any error. +set -e -BUILD_ROOT="$PWD" -SRC="$PWD/github/amber" -BUILD_TYPE="Release" +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" +ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" -export ANDROID_NDK="$BUILD_ROOT/android-ndk-r27c" -ANDROID_STL="c++_static" -ANDROID_PLATFORM="android-24" -ANDROID_ABI="armeabi-v7a" +BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT} -TOOLCHAIN_PATH="$ANDROID_NDK/build/cmake/android.toolchain.cmake" +set +e +# Allow build failures -# Disable git's "detected dubious ownership" error - kokoro checks out the repo with a different -# user, and we don't care about this warning. -git config --global --add safe.directory '*' +# "--privileged" is required to run ptrace in the asan builds. +docker run --rm -i \ + --privileged \ + --volume "${ROOT_DIR}:${ROOT_DIR}" \ + --volume "${KOKORO_ARTIFACTS_DIR}:${KOKORO_ARTIFACTS_DIR}" \ + --workdir "${ROOT_DIR}" \ + --env SCRIPT_DIR=${SCRIPT_DIR} \ + --env ROOT_DIR=${ROOT_DIR} \ + --env KOKORO_ARTIFACTS_DIR="${KOKORO_ARTIFACTS_DIR}" \ + --env BUILD_SHA="${BUILD_SHA}" \ + --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ + us-east4-docker.pkg.dev/shaderc-build/radial-docker/ubuntu-24.04-amd64/cpp-builder +RESULT=$? -# removing the old version -echo y | sudo apt-get purge --auto-remove cmake - -# Installing the 3.14.0 version. -# Glslang requires 3.14.0 -wget http://www.cmake.org/files/v3.18/cmake-3.18.6.tar.gz -tar -xvzf cmake-3.18.6.tar.gz -pushd cmake-3.18.6/ -./configure -make -sudo make install -echo "$(date): $(cmake --version)" -popd - -# Get NINJA. -wget -q https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip -unzip -q ninja-linux.zip -export PATH="$PWD:$PATH" - -# Get Android NDK. -wget -q https://dl.google.com/android/repository/android-ndk-r27c-linux.zip -unzip -q android-ndk-r27c-linux.zip -# ANDROID_NDK is set earlier. - -cd "$SRC" -./tools/git-sync-deps - -mkdir build && cd "$SRC/build" - -# Invoke the build. -echo "$(date): Starting build..." -cmake -GNinja \ - "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" \ - "-DANDROID_ABI=$ANDROID_ABI" \ - "-DANDROID_PLATFORM=$ANDROID_PLATFORM" \ - "-DANDROID_NDK=$ANDROID_NDK" \ - "-DANDROID_STL=$ANDROID_STL" \ - "-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_PATH" \ - .. - -echo "$(date): Build everything..." -ninja -echo "$(date): Build completed." +exit $RESULT From 37c99f09bb5e2894c259edabad1ff98718f38e11 Mon Sep 17 00:00:00 2001 From: David Neto Date: Mon, 26 Jan 2026 17:19:52 -0500 Subject: [PATCH 2/2] Update kokoro/android/build-docker.sh Co-authored-by: dan sinclair --- kokoro/android/build-docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/android/build-docker.sh b/kokoro/android/build-docker.sh index 4542c684..afa65696 100755 --- a/kokoro/android/build-docker.sh +++ b/kokoro/android/build-docker.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2025 The Amber Authors. +# Copyright 2026 The Amber Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.