Copy the out/soong/build_number.txt file into sdk snapshots for R

This change adds the build_number.txt file into the sdk snapshot for R
to make it easier to debug issues arising in partner builds caused by
the snapshots.

The file is added to the root of the snapshot and is called:
    snapshot-creation-build-number.txt

Bug: 201295663
Test: atest --host mainline_modules_sdks_test
      packages/modules/common/build/mainline_modules_sdks.sh --build-release=R
      # Check the contents of various snapshots.
Change-Id: I6cabf16754c73fc87ee4e9d00bf6ddb8349809f1
This commit is contained in:
Paul Duffin
2022-04-06 13:13:41 +00:00
parent e7b26ac7e4
commit 4899f98a91
2 changed files with 27 additions and 0 deletions

View File

@@ -303,6 +303,8 @@ class SnapshotBuilder:
r_snapshot_dir = os.path.join(snapshot_dir, "for-R-build") r_snapshot_dir = os.path.join(snapshot_dir, "for-R-build")
shutil.rmtree(r_snapshot_dir, ignore_errors=True) shutil.rmtree(r_snapshot_dir, ignore_errors=True)
build_number_file = os.path.join(self.out_dir, "soong/build_number.txt")
for module in modules: for module in modules:
apex = module.apex apex = module.apex
dest_dir = os.path.join(r_snapshot_dir, apex) dest_dir = os.path.join(r_snapshot_dir, apex)
@@ -323,6 +325,7 @@ class SnapshotBuilder:
bp.write(f"// {self.tool_path}\n") bp.write(f"// {self.tool_path}\n")
bp.write(COPYRIGHT_BOILERPLATE) bp.write(COPYRIGHT_BOILERPLATE)
aosp_apex = google_to_aosp_name(apex) aosp_apex = google_to_aosp_name(apex)
for library in module.for_r_build.sdk_libraries: for library in module.for_r_build.sdk_libraries:
module_name = library.name module_name = library.name
shared_library = str(library.shared_library).lower() shared_library = str(library.shared_library).lower()
@@ -365,6 +368,12 @@ java_sdk_library_import {{
}} }}
""") """)
# Copy the build_number.txt file into the snapshot.
snapshot_build_number_file = os.path.join(
dest_dir, "snapshot-creation-build-number.txt")
shutil.copy(build_number_file, snapshot_build_number_file)
# Now zip up the files into a snapshot zip file.
base_file = os.path.join(r_snapshot_dir, sdk_name + "-current") base_file = os.path.join(r_snapshot_dir, sdk_name + "-current")
shutil.make_archive(base_file, "zip", dest_dir) shutil.make_archive(base_file, "zip", dest_dir)

View File

@@ -15,6 +15,7 @@
# limitations under the License. # limitations under the License.
"""Unit tests for mainline_modules_sdks.py.""" """Unit tests for mainline_modules_sdks.py."""
import dataclasses import dataclasses
import pathlib
import re import re
import typing import typing
from pathlib import Path from pathlib import Path
@@ -112,6 +113,10 @@ class TestProduceDist(unittest.TestCase):
return files return files
def test_unbundled_modules(self): def test_unbundled_modules(self):
# Create the out/soong/build_number.txt file that is copied into the
# snapshots.
self.create_build_number_file()
modules = [ modules = [
MAINLINE_MODULES_BY_APEX["com.android.art"], MAINLINE_MODULES_BY_APEX["com.android.art"],
MAINLINE_MODULES_BY_APEX["com.android.ipsec"], MAINLINE_MODULES_BY_APEX["com.android.ipsec"],
@@ -175,11 +180,13 @@ class TestProduceDist(unittest.TestCase):
"com.android.ipsec/sdk_library/public/android.net.ipsec.ike-stubs.jar", "com.android.ipsec/sdk_library/public/android.net.ipsec.ike-stubs.jar",
"com.android.ipsec/sdk_library/public/android.net.ipsec.ike.srcjar", "com.android.ipsec/sdk_library/public/android.net.ipsec.ike.srcjar",
"com.android.ipsec/sdk_library/public/android.net.ipsec.ike.txt", "com.android.ipsec/sdk_library/public/android.net.ipsec.ike.txt",
"com.android.ipsec/snapshot-creation-build-number.txt",
google_wifi_android_bp, google_wifi_android_bp,
"com.google.android.wifi/sdk_library/public/framework-wifi-removed.txt", "com.google.android.wifi/sdk_library/public/framework-wifi-removed.txt",
"com.google.android.wifi/sdk_library/public/framework-wifi-stubs.jar", "com.google.android.wifi/sdk_library/public/framework-wifi-stubs.jar",
"com.google.android.wifi/sdk_library/public/framework-wifi.srcjar", "com.google.android.wifi/sdk_library/public/framework-wifi.srcjar",
"com.google.android.wifi/sdk_library/public/framework-wifi.txt", "com.google.android.wifi/sdk_library/public/framework-wifi.txt",
"com.google.android.wifi/snapshot-creation-build-number.txt",
"ipsec-module-sdk-current.zip", "ipsec-module-sdk-current.zip",
"wifi-module-sdk-current.zip", "wifi-module-sdk-current.zip",
], sorted(self.list_files_in_dir(r_snaphot_dir))) ], sorted(self.list_files_in_dir(r_snaphot_dir)))
@@ -263,7 +270,18 @@ class TestProduceDist(unittest.TestCase):
], ],
sorted(self.list_files_in_dir(self.tmp_dist_dir))) sorted(self.list_files_in_dir(self.tmp_dist_dir)))
def create_build_number_file(self):
soong_dir = os.path.join(self.tmp_out_dir, "soong")
os.makedirs(soong_dir, exist_ok=True)
build_number_file = os.path.join(soong_dir, "build_number.txt")
with open(build_number_file, "w", encoding="utf8") as f:
f.write("build-number")
def test_snapshot_build_order(self): def test_snapshot_build_order(self):
# Create the out/soong/build_number.txt file that is copied into the
# snapshots.
self.create_build_number_file()
subprocess_runner = unittest.mock.Mock(mm.SubprocessRunner) subprocess_runner = unittest.mock.Mock(mm.SubprocessRunner)
snapshot_builder = FakeSnapshotBuilder( snapshot_builder = FakeSnapshotBuilder(
tool_path="path/to/mainline_modules_sdks.sh", tool_path="path/to/mainline_modules_sdks.sh",