[v6,08/11] testsuite: Set ISAR_PREFETCH_BASE_APT by default

Message ID 20240314073047.29465-9-ubely@ilbers.de
State Superseded, archived
Headers show
Series Improving base-apt usage | expand

Commit Message

Uladzimir Bely March 14, 2024, 7:27 a.m. UTC
This makes Isar use `base-apt` repo in different way. Any package
installation is done from `base-apt` repo which is prepopulated
from external mirrors.

This behaviour is disabled by default for downstreams. To enable it,
set the variable to "1", like isar does in local.conf.sample.

In order to be able to run CI in old mode, allow CI read the option
from the environment. Also, adjust some tests (like repro one) to
make them work with ISAR_PREFETCH_BASE_APT set.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 meta-test/conf/local.conf.sample | 3 +++
 testsuite/cibase.py              | 4 ++++
 testsuite/cibuilder.py           | 8 +++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

Patch

diff --git a/meta-test/conf/local.conf.sample b/meta-test/conf/local.conf.sample
index f692f533..941d7cce 100644
--- a/meta-test/conf/local.conf.sample
+++ b/meta-test/conf/local.conf.sample
@@ -34,6 +34,9 @@  IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsc
 IMAGE_INSTALL:remove:qemuamd64-sb = "example-module-${KERNEL_NAME}"
 IMAGE_INSTALL:append:qemuamd64-sb = " example-module-signed-${KERNEL_NAME}"
 
+# Use new base-apt behaviour
+ISAR_PREFETCH_BASE_APT ?= "1"
+
 # Users and groups
 USERS += "root"
 USER_root[password] ??= "$6$rounds=10000$RXeWrnFmkY$DtuS/OmsAS2cCEDo0BF5qQsizIrq6jPgXnwv3PHqREJeKd1sXdHX/ayQtuQWVDHe0KIO0/sVH8dvQm1KthF0d/"
diff --git a/testsuite/cibase.py b/testsuite/cibase.py
index 90591f32..74f6c971 100755
--- a/testsuite/cibase.py
+++ b/testsuite/cibase.py
@@ -43,9 +43,13 @@  class CIBaseTest(CIBuilder):
             self.fail('GPG import failed')
 
         try:
+            self.move_in_build_dir('tmp', 'tmp_before_repro')
             self.bitbake(targets, **kwargs)
 
             self.move_in_build_dir('tmp', 'tmp_middle_repro_%s' % ('signed' if signed else 'unsigned'))
+            
+            os.makedirs(f"{self.build_dir}/tmp/deploy/")
+            self.move_in_build_dir('tmp_middle_repro_%s/deploy/base-apt' % ('signed' if signed else 'unsigned'), 'tmp/deploy/base-apt')
             self.configure(gpg_pub_key=gpg_pub_key if signed else None, offline=True, sstate_dir="", **kwargs)
 
             self.bitbake(targets, **kwargs)
diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py
index fa30c2f5..08f82295 100755
--- a/testsuite/cibuilder.py
+++ b/testsuite/cibuilder.py
@@ -104,6 +104,9 @@  class CIBuilder(Test):
         # get parameters from environment
         distro_apt_premir = os.getenv('DISTRO_APT_PREMIRRORS')
 
+        # get prefetch base apt mode from environment
+        prefetch_base_apt = os.getenv('ISAR_PREFETCH_BASE_APT')
+
         self.log.info(f'===================================================\n'
                       f'Configuring build_dir {self.build_dir}\n'
                       f'  compat_arch = {compat_arch}\n'
@@ -120,6 +123,7 @@  class CIBuilder(Test):
                       f'  sstate_dir = {sstate_dir}\n'
                       f'  ccache_dir = {ccache_dir}\n'
                       f'  image_install = {image_install}\n'
+                      f'  prefetch_base_apt = {prefetch_base_apt}\n'
                       f'===================================================')
 
         # determine bitbake_args
@@ -165,7 +169,9 @@  class CIBuilder(Test):
             if sstate_dir:
                 f.write('SSTATE_DIR = "%s"\n' % sstate_dir)
             if image_install is not None:
-                f.write('IMAGE_INSTALL = "%s"' % image_install)
+                f.write('IMAGE_INSTALL = "%s"\n' % image_install)
+            if prefetch_base_apt == "0":
+                f.write('ISAR_PREFETCH_BASE_APT = "0"\n')
 
         # include ci_build.conf in local.conf
         with open(self.build_dir + '/conf/local.conf', 'r+') as f: