From c2abeadb512f78adf12bef1ad0ce3f3879737930 Mon Sep 17 00:00:00 2001 From: dneto Date: Thu, 22 Jan 2026 15:47:15 -0500 Subject: [PATCH 1/2] convert NDK build to docker build --- kokoro/ndk-build/build-docker.sh | 60 +++++++++++++++++++++++++++ kokoro/ndk-build/build.sh | 69 ++++++++++---------------------- 2 files changed, 82 insertions(+), 47 deletions(-) create mode 100755 kokoro/ndk-build/build-docker.sh diff --git a/kokoro/ndk-build/build-docker.sh b/kokoro/ndk-build/build-docker.sh new file mode 100755 index 00000000..8379ab99 --- /dev/null +++ b/kokoro/ndk-build/build-docker.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Copyright 2018 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. +# Marking the root of the repo as safe for ownership changes. +git config --global --add safe.directory $ROOT_DIR + +. /bin/using.sh +using ndk-r29 +using python-3.12.4 + +./tools/git-sync-deps +./tools/update_build_version.py . samples/ third_party/ +./tools/update_vk_wrappers.py . . + +mkdir -p build/libs build/app +cd build + +# Invoke the build. + +echo "$(date): Starting ndk-build for android_test ..." + ndk-build \ + -C "$ROOT_DIR/android_test" \ + NDK_PROJECT_PATH=. \ + "NDK_LIBS_OUT=$(pwd)/libs" \ + "NDK_APP_OUT=$(pwd)/app" \ + -j8 + +echo "$(date): ndk-build for android_test completed." + +echo "$(date): Starting ndk-build for samples ..." + ndk-build \ + -C "$ROOT_DIR/samples" \ + NDK_PROJECT_PATH=. \ + "NDK_LIBS_OUT=$(pwd)/libs" \ + "NDK_APP_OUT=$(pwd)/app" \ + -j8 +echo "$(date): ndk-build for samples completed." diff --git a/kokoro/ndk-build/build.sh b/kokoro/ndk-build/build.sh index 91e6a723..77a1b619 100755 --- a/kokoro/ndk-build/build.sh +++ b/kokoro/ndk-build/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 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. @@ -13,54 +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 +# Fail on any error. +set -e -BUILD_ROOT="$PWD" -SRC="$PWD/github/amber" +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" +ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" -# 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 '*' +BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT} -# NDK Path -export ANDROID_NDK="$BUILD_ROOT/android-ndk-r27c" +set +e +# Allow build failures -# 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" +# "--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=$? -# 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 -./tools/update_build_version.py . samples/ third_party/ -./tools/update_vk_wrappers.py . . - -mkdir -p build/libs build/app -cd "$SRC/build" - -# Invoke the build. - -echo "$(date): Starting ndk-build for android_test ..." -"$ANDROID_NDK/ndk-build" \ - -C "$SRC/android_test" \ - NDK_PROJECT_PATH=. \ - "NDK_LIBS_OUT=$(pwd)/libs" \ - "NDK_APP_OUT=$(pwd)/app" \ - -j8 - -echo "$(date): ndk-build for android_test completed." - -echo "$(date): Starting ndk-build for samples ..." -"$ANDROID_NDK/ndk-build" \ - -C "$SRC/samples" \ - NDK_PROJECT_PATH=. \ - "NDK_LIBS_OUT=$(pwd)/libs" \ - "NDK_APP_OUT=$(pwd)/app" \ - -j8 -echo "$(date): ndk-build for samples completed." +exit $RESULT From a5e2d7b93ea017d6cc9d345eb1425eac15f7721e Mon Sep 17 00:00:00 2001 From: David Neto Date: Mon, 26 Jan 2026 11:57:59 -0500 Subject: [PATCH 2/2] Update kokoro/ndk-build/build-docker.sh Co-authored-by: dan sinclair --- kokoro/ndk-build/build-docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/ndk-build/build-docker.sh b/kokoro/ndk-build/build-docker.sh index 8379ab99..dbb5341a 100755 --- a/kokoro/ndk-build/build-docker.sh +++ b/kokoro/ndk-build/build-docker.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 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.