diff options
author | Anton Hansson <hansson@google.com> | 2022-04-06 12:06:06 +0100 |
---|---|---|
committer | Anton Hansson <hansson@google.com> | 2022-04-07 11:01:05 +0100 |
commit | b853f31f284bb8c1d1eaba7aefe568cd9e5b1565 (patch) | |
tree | e1334c2b67330e5ef84160d496b0770279abcdf7 /tools | |
parent | 53c913e727360e6d85440dc9d1db6405efea08c6 (diff) | |
download | common-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')
-rwxr-xr-x | tools/finalize_sdk.py | 24 |
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]) |