aboutsummaryrefslogtreecommitdiff
path: root/tools/finalize_sdk.py
diff options
context:
space:
mode:
authorAnton Hansson <hansson@google.com>2022-04-06 12:06:06 +0100
committerAnton Hansson <hansson@google.com>2022-04-07 11:01:05 +0100
commitb853f31f284bb8c1d1eaba7aefe568cd9e5b1565 (patch)
treee1334c2b67330e5ef84160d496b0770279abcdf7 /tools/finalize_sdk.py
parent53c913e727360e6d85440dc9d1db6405efea08c6 (diff)
downloadcommon-b853f31f284bb8c1d1eaba7aefe568cd9e5b1565.tar.gz
Make finalization script also copy compat txt files
We need to duplicate the txt files in an additional location in order for compatibility tracking to work. Make the script copy them to that location as well. Test: run finalize.py for version 2 Change-Id: I31848ad3f5cd0c264c68b4cdd874c93615de600a
Diffstat (limited to 'tools/finalize_sdk.py')
-rwxr-xr-xtools/finalize_sdk.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/tools/finalize_sdk.py b/tools/finalize_sdk.py
index 7aec782e..84fd762e 100755
--- a/tools/finalize_sdk.py
+++ b/tools/finalize_sdk.py
@@ -1,8 +1,10 @@
#!/usr/bin/python3
import argparse
+import glob
import os
import re
+import shutil
import subprocess
import sys
import tempfile
@@ -13,7 +15,7 @@ from pathlib import Path
# See go/fetch_artifact for details on this script.
FETCH_ARTIFACT = '/google/data/ro/projects/android/fetch_artifact'
-
+COMPAT_REPO = Path('prebuilts/sdk')
# This build target is used when fetching from a train build (TXXXXXXXX)
BUILD_TARGET_TRAIN = 'train_build'
# This build target is used when fetching from a non-train build (XXXXXXXX)
@@ -92,7 +94,12 @@ module_names = args.modules
if not module_names:
module_names = ['*']
-created_dirs = defaultdict(list)
+compat_dir = COMPAT_REPO.joinpath('extensions/%d' % args.finalize_sdk)
+if compat_dir.is_dir():
+ print('Removing existing dir %s' % compat_dir)
+ shutil.rmtree(compat_dir)
+
+created_dirs = defaultdict(set)
for m in module_names:
tmpdir = fetch_artifacts(build_target, args.bid, ARTIFACT_PATTERN.format(module_name=m))
for f in tmpdir.iterdir():
@@ -109,13 +116,22 @@ for m in module_names:
os.remove(target_dir.joinpath('Android.bp'))
print('Created %s' % target_dir)
- created_dirs[repo].append(dir)
+ created_dirs[repo].add(dir)
+
+ # Copy api txt files to compat tracking dir
+ txt_files = [Path(p) for p in glob.glob(os.path.join(target_dir, 'sdk_library/*/*.txt'))]
+ for txt_file in txt_files:
+ api_type = txt_file.parts[-2]
+ dest_dir = compat_dir.joinpath(api_type, 'api')
+ os.makedirs(dest_dir, exist_ok = True)
+ shutil.copy(txt_file, dest_dir)
+ created_dirs[COMPAT_REPO].add(dest_dir.relative_to(COMPAT_REPO))
subprocess.check_output(['repo', 'start', branch_name] + list(created_dirs.keys()))
print('Running git commit')
for repo in created_dirs:
git = ['git', '-C', str(repo)]
- subprocess.check_output(git + ['add'] + created_dirs[repo])
+ subprocess.check_output(git + ['add'] + list(created_dirs[repo]))
if args.amend_last_commit:
change_id = '\n' + re.search(r'Change-Id: [^\\n]+', str(subprocess.check_output(git + ['log', '-1']))).group(0)
subprocess.check_output(git + ['commit', '--amend', '-m', commit_message + change_id])