From 0a6b203f299a8cb9bcb00ea5a4c1ec9da73a537c Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 18 Dec 2024 13:59:07 -0800 Subject: [PATCH 01/15] Fix Android error restoring secrets. --- scripts/restore_secrets.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scripts/restore_secrets.py b/scripts/restore_secrets.py index cd72cf58..b4f40777 100644 --- a/scripts/restore_secrets.py +++ b/scripts/restore_secrets.py @@ -152,10 +152,13 @@ def _patch_reverse_id(service_plist_path): print("Attempting to patch reverse id in Info.plist") with open(service_plist_path, "rb") as f: service_plist = plistlib.load(f) - _patch_file( - path=os.path.join(os.path.dirname(service_plist_path), "testapp", "Info.plist"), - placeholder="REPLACE_WITH_REVERSED_CLIENT_ID", - value=service_plist["REVERSED_CLIENT_ID"]) + try: + _patch_file( + path=os.path.join(os.path.dirname(service_plist_path), "testapp", "Info.plist"), + placeholder="REPLACE_WITH_REVERSED_CLIENT_ID", + value=service_plist["REVERSED_CLIENT_ID"]) + except KeyError as e: + print("Warning: Couldn't patch %s in %s" % (e.args[0], service_plist_path)) def _patch_bundle_id(service_plist_path): @@ -163,10 +166,13 @@ def _patch_bundle_id(service_plist_path): print("Attempting to patch bundle id in Info.plist") with open(service_plist_path, "rb") as f: service_plist = plistlib.load(f) - _patch_file( - path=os.path.join(os.path.dirname(service_plist_path), "testapp", "Info.plist"), - placeholder="$(PRODUCT_BUNDLE_IDENTIFIER)", - value=service_plist["BUNDLE_ID"]) + try: + _patch_file( + path=os.path.join(os.path.dirname(service_plist_path), "testapp", "Info.plist"), + placeholder="$(PRODUCT_BUNDLE_IDENTIFIER)", + value=service_plist["BUNDLE_ID"]) + except KeyError as e: + print("Warning: Couldn't patch %s in %s" % (e.args[0], service_plist_path)) def _patch_file(path, placeholder, value): From 2d75bfe4778d7e31fd964b13b11145c180d48b07 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 18 Dec 2024 14:00:25 -0800 Subject: [PATCH 02/15] Reword warning. --- scripts/restore_secrets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/restore_secrets.py b/scripts/restore_secrets.py index b4f40777..1dae73eb 100644 --- a/scripts/restore_secrets.py +++ b/scripts/restore_secrets.py @@ -158,7 +158,7 @@ def _patch_reverse_id(service_plist_path): placeholder="REPLACE_WITH_REVERSED_CLIENT_ID", value=service_plist["REVERSED_CLIENT_ID"]) except KeyError as e: - print("Warning: Couldn't patch %s in %s" % (e.args[0], service_plist_path)) + print("Warning: Missing plist key %s in %s, skipping" % (e.args[0], service_plist_path)) def _patch_bundle_id(service_plist_path): @@ -172,7 +172,7 @@ def _patch_bundle_id(service_plist_path): placeholder="$(PRODUCT_BUNDLE_IDENTIFIER)", value=service_plist["BUNDLE_ID"]) except KeyError as e: - print("Warning: Couldn't patch %s in %s" % (e.args[0], service_plist_path)) + print("Warning: Missing plist key %s in %s, skipping" % (e.args[0], service_plist_path)) def _patch_file(path, placeholder, value): From 07e03d3530cfd2dae61b95c2c096e14a4990f6ce Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 19 Dec 2024 17:14:05 +0000 Subject: [PATCH 03/15] android.yml: python version changes to 3.12, from 3.7, to fix error that GitHub runners do not have 3.7 any more --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e086d3f9..b200ba3d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -46,7 +46,7 @@ jobs: matrix: os: [macos-12, ubuntu-latest, windows-latest] architecture: [x64] - python_version: [3.7] + python_version: [3.12] steps: - name: setup Xcode version (macos) if: runner.os == 'macOS' From 2b4e3656ef8a2913ab701e75ac850ccfb7a0291b Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 19 Dec 2024 18:27:03 +0000 Subject: [PATCH 04/15] Replace distutils usage with non-deleted alternatives --- scripts/build_scripts/build_testapps.py | 4 +--- scripts/build_scripts/utils.py | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/build_scripts/build_testapps.py b/scripts/build_scripts/build_testapps.py index 3caf85f0..7b12a898 100644 --- a/scripts/build_scripts/build_testapps.py +++ b/scripts/build_scripts/build_testapps.py @@ -84,7 +84,6 @@ from absl import app from absl import flags from absl import logging -from distutils import dir_util import utils import config_reader @@ -322,8 +321,7 @@ def _build( project_dir = os.path.join(project_dir, output_testapp_dir) logging.info("Copying testapp project to %s", project_dir) - os.makedirs(project_dir) - dir_util.copy_tree(testapp_dir, project_dir) + shutil.copytree(testapp_dir, project_dir) logging.info("Changing directory to %s", project_dir) os.chdir(project_dir) diff --git a/scripts/build_scripts/utils.py b/scripts/build_scripts/utils.py index 631dc8df..63301f14 100644 --- a/scripts/build_scripts/utils.py +++ b/scripts/build_scripts/utils.py @@ -19,7 +19,6 @@ platforms. """ -import distutils.spawn import platform import shutil import subprocess @@ -62,7 +61,7 @@ def run_command(cmd, capture_output=False, cwd=None, check=False, as_root=False, def is_command_installed(tool): """Check if a command is installed on the system.""" - return distutils.spawn.find_executable(tool) + return shutil.which(tool) def delete_directory(dir_path): From 4f9a6b5edb52452dd98914b586d95da56fd0991f Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 19 Dec 2024 18:59:58 +0000 Subject: [PATCH 05/15] android.yml: add actions/setup-java to get a deterministic jdk version --- .github/workflows/android.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b200ba3d..4ee6fa3c 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -74,11 +74,16 @@ jobs: echo "GHA_INSTALL_CCACHE=1" >> $GITHUB_ENV - name: Setup python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python_version }} architecture: ${{ matrix.architecture }} + - uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + - name: Add msbuild to PATH if: startsWith(matrix.os, 'windows') uses: microsoft/setup-msbuild@v1.0.2 From cd2df1c62a0f87bb6bf5d2fd4836963169a1fe6c Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 19 Dec 2024 19:05:16 +0000 Subject: [PATCH 06/15] use jdk 11 instead of 17 --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 4ee6fa3c..dce5e6dc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -81,7 +81,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 11 distribution: temurin - name: Add msbuild to PATH From 70a81ac4c96162f62464fd23b1ecb1c3d2d72950 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 19 Dec 2024 14:43:04 -0500 Subject: [PATCH 07/15] jcenter - mavenCentral --- analytics/testapp/build.gradle | 4 ++-- auth/testapp/build.gradle | 4 ++-- database/testapp/build.gradle | 4 ++-- dynamic_links/testapp/build.gradle | 4 ++-- firestore/testapp/build.gradle | 4 ++-- functions/testapp/build.gradle | 4 ++-- gma/testapp/build.gradle | 4 ++-- messaging/testapp/build.gradle | 4 ++-- remote_config/testapp/build.gradle | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/analytics/testapp/build.gradle b/analytics/testapp/build.gradle index 42939198..d36bdec0 100644 --- a/analytics/testapp/build.gradle +++ b/analytics/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/auth/testapp/build.gradle b/auth/testapp/build.gradle index eb739709..d583d3e9 100644 --- a/auth/testapp/build.gradle +++ b/auth/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/database/testapp/build.gradle b/database/testapp/build.gradle index bfa91283..529c6d61 100644 --- a/database/testapp/build.gradle +++ b/database/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/dynamic_links/testapp/build.gradle b/dynamic_links/testapp/build.gradle index e7b828bb..9ea0a3b0 100644 --- a/dynamic_links/testapp/build.gradle +++ b/dynamic_links/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/firestore/testapp/build.gradle b/firestore/testapp/build.gradle index 6adb3b5a..4f3b646a 100644 --- a/firestore/testapp/build.gradle +++ b/firestore/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/functions/testapp/build.gradle b/functions/testapp/build.gradle index d47c3488..9a4b5780 100644 --- a/functions/testapp/build.gradle +++ b/functions/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/gma/testapp/build.gradle b/gma/testapp/build.gradle index 4cf159a9..25f771ea 100644 --- a/gma/testapp/build.gradle +++ b/gma/testapp/build.gradle @@ -4,7 +4,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/messaging/testapp/build.gradle b/messaging/testapp/build.gradle index 4f607fe3..5692df61 100644 --- a/messaging/testapp/build.gradle +++ b/messaging/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } diff --git a/remote_config/testapp/build.gradle b/remote_config/testapp/build.gradle index 4802ecbf..4d2a7f86 100644 --- a/remote_config/testapp/build.gradle +++ b/remote_config/testapp/build.gradle @@ -3,7 +3,7 @@ buildscript { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.1' @@ -15,7 +15,7 @@ allprojects { repositories { mavenLocal() maven { url 'https://maven.google.com' } - jcenter() + mavenCentral() } } From c20a4bc49d224d665fc9db24b852b08105be1396 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:06:26 +0000 Subject: [PATCH 08/15] REVERT ME: android.yml: echo some info for debugging --- .github/workflows/android.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index dce5e6dc..d4f4d4ba 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -131,6 +131,14 @@ jobs: pip install -r scripts/build_scripts/python_requirements.txt python scripts/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}" + - name: Denver's DEBUG + shell: bash + run: | + set +e + set -xv + env | grep ANDROID + which adb + - name: Download C++ SDK shell: bash run: | From 2c5f90a47079e46e6f5a42cf93dd66faf6bbae88 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:08:35 +0000 Subject: [PATCH 09/15] REVERT ME: android.yml: more debugging --- .github/workflows/android.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index d4f4d4ba..30ca7dd7 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -138,6 +138,7 @@ jobs: set -xv env | grep ANDROID which adb + ls "$ANDROID_HOME/build-tools" - name: Download C++ SDK shell: bash From 93c2a196d96f984a3f2ac8cf4053f9bcc760eed5 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:16:06 +0000 Subject: [PATCH 10/15] REVERT ME: android.yml: more debugging --- .github/workflows/android.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 30ca7dd7..9eb3a9c7 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -137,8 +137,13 @@ jobs: set +e set -xv env | grep ANDROID - which adb - ls "$ANDROID_HOME/build-tools" + echo "Searching for d8 files in $ANDROID_HOME/build-tools" + for BUILD_TOOLS_DIR in "$ANDROID_HOME/build-tools/*" ; do + echo "Looking for d8 in $BUILD_TOOLS_DIR" + for D8_FILE in `find "$BUILD_TOOLS_DIR" -name d8'*'`; do + echo "$D8_FILE" + done + done - name: Download C++ SDK shell: bash From c4fa6e6000b51ce25e440dd5ba0d9a0cc14355d9 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:20:44 +0000 Subject: [PATCH 11/15] android.yml: fix typo --- .github/workflows/android.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 9eb3a9c7..265ad8cb 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -138,11 +138,8 @@ jobs: set -xv env | grep ANDROID echo "Searching for d8 files in $ANDROID_HOME/build-tools" - for BUILD_TOOLS_DIR in "$ANDROID_HOME/build-tools/*" ; do - echo "Looking for d8 in $BUILD_TOOLS_DIR" - for D8_FILE in `find "$BUILD_TOOLS_DIR" -name d8'*'`; do - echo "$D8_FILE" - done + for D8_FILE in `find "$ANDROID_HOME"/build-tools/* -name d8'*'`; do + echo "$D8_FILE" done - name: Download C++ SDK From 51a938ee03e8d6756676373273d789cba50be743 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:24:46 +0000 Subject: [PATCH 12/15] android.yml: another fix --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 265ad8cb..8d5ce3a4 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -138,7 +138,7 @@ jobs: set -xv env | grep ANDROID echo "Searching for d8 files in $ANDROID_HOME/build-tools" - for D8_FILE in `find "$ANDROID_HOME"/build-tools/* -name d8'*'`; do + for D8_FILE in `find "$ANDROID_HOME"/build-tools" -name 'd8*'`; do echo "$D8_FILE" done From a982b6fee36e7674677058e3bf67a4a480753a22 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:43:01 +0000 Subject: [PATCH 13/15] android.yml: remove extraneous double-quote --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 8d5ce3a4..99a2d629 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -138,7 +138,7 @@ jobs: set -xv env | grep ANDROID echo "Searching for d8 files in $ANDROID_HOME/build-tools" - for D8_FILE in `find "$ANDROID_HOME"/build-tools" -name 'd8*'`; do + for D8_FILE in `find "$ANDROID_HOME"/build-tools -name 'd8*'`; do echo "$D8_FILE" done From 433fa5882377ff47cbd9ce51a5179168deb28367 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 17:54:04 +0000 Subject: [PATCH 14/15] android.yml: implement d8 -> dx fix --- .github/workflows/android.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 99a2d629..6f5623bc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -131,16 +131,14 @@ jobs: pip install -r scripts/build_scripts/python_requirements.txt python scripts/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}" - - name: Denver's DEBUG + - name: "Rename d8 to dx (fixes java.lang.NumberFormatException: Not a number: 33x)" shell: bash run: | - set +e - set -xv - env | grep ANDROID - echo "Searching for d8 files in $ANDROID_HOME/build-tools" - for D8_FILE in `find "$ANDROID_HOME"/build-tools -name 'd8*'`; do - echo "$D8_FILE" - done + for D8_FILE in `find "$ANDROID_HOME/build-tools" -type f -name 'd8*'`; do + DX_FILE="$(echo "$D8_FILE" | sed 's/d8/dx/')" + echo "cp $D8_FILE $DX_FILE" + cp "$D8_FILE" "$DX_FILE" + done - name: Download C++ SDK shell: bash From 06a203a062d563ec1c3b2596b32745b3ac860df0 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Thu, 2 Jan 2025 13:08:02 -0500 Subject: [PATCH 15/15] android.yml: revert changes that culminated in the step "Rename d8 to dx (fixes java.lang.NumberFormatException: Not a number: 33x)" This step did indeed fix the NumberFormatException; however, a new error surfaced on Ubuntu: com.android.builder.errors.EvalIssueException: Location specified by android.ndkPath (/tmp/android-ndk-r21e) did not contain a valid NDK and couldn't be used And in Windows, this error occurred: Could not resolve com.google.guava:guava:31.1-android. --- .github/workflows/android.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 6f5623bc..dce5e6dc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -131,15 +131,6 @@ jobs: pip install -r scripts/build_scripts/python_requirements.txt python scripts/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}" - - name: "Rename d8 to dx (fixes java.lang.NumberFormatException: Not a number: 33x)" - shell: bash - run: | - for D8_FILE in `find "$ANDROID_HOME/build-tools" -type f -name 'd8*'`; do - DX_FILE="$(echo "$D8_FILE" | sed 's/d8/dx/')" - echo "cp $D8_FILE $DX_FILE" - cp "$D8_FILE" "$DX_FILE" - done - - name: Download C++ SDK shell: bash run: |