Talha Can Havadar has proposed merging 
~tchavadar/launchpad-buildd:use-ubuntu-images-deb into launchpad-buildd:master.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~tchavadar/launchpad-buildd/+git/launchpad-buildd/+merge/464761

Exposing LB_USE_UBUNTU_IMAGES_DEB env variable to be configurable by lpbuildd. 
Details about the relevant change can be found in 
https://code.launchpad.net/~tchavadar/livecd-rootfs/+git/livecd-rootfs/+merge/464755

Change is proposed to make LB_USE_UBUNTU_IMAGES_DEB configurable through livefs 
build metadata.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of 
~tchavadar/launchpad-buildd:use-ubuntu-images-deb into launchpad-buildd:master.
diff --git a/lpbuildd/livefs.py b/lpbuildd/livefs.py
index 6e8da92..68dc40c 100644
--- a/lpbuildd/livefs.py
+++ b/lpbuildd/livefs.py
@@ -37,6 +37,7 @@ class LiveFilesystemBuildManager(DebianBuildManager):
         self.repo_snapshot_stamp = extra_args.get("repo_snapshot_stamp")
         self.cohort_key = extra_args.get("cohort-key")
         self.debug = extra_args.get("debug", False)
+        self.use_ubuntu_images_deb = extra_args.get("use_ubuntu_images_deb")
 
         super().initiate(files, chroot, extra_args)
 
@@ -77,6 +78,8 @@ class LiveFilesystemBuildManager(DebianBuildManager):
             pass
         if self.debug:
             args.append("--debug")
+        if self.use_ubuntu_images_deb:
+            args.extend(["--use-ubuntu-images-deb", self.use_ubuntu_images_deb])
         self.runTargetSubProcess("buildlivefs", *args)
 
     def iterate_BUILD_LIVEFS(self, retcode):
diff --git a/lpbuildd/target/build_livefs.py b/lpbuildd/target/build_livefs.py
index ed94328..ad31838 100644
--- a/lpbuildd/target/build_livefs.py
+++ b/lpbuildd/target/build_livefs.py
@@ -109,6 +109,12 @@ class BuildLiveFS(SnapStoreOperationMixin, Operation):
             action="store_true",
             help="enable detailed live-build debugging",
         )
+        parser.add_argument(
+            "--use-ubuntu-images-deb",
+            dest="use_ubuntu_images_deb",
+            metavar="USE_UBUNTU_IMAGES_DEV",
+            help="Use specified ubuntu-images package instead of git repository"
+        )
 
     def install(self):
         deps = ["livecd-rootfs"]
@@ -198,6 +204,8 @@ class BuildLiveFS(SnapStoreOperationMixin, Operation):
                 }
                 lb_env.update(proxy_dict)
                 base_lb_env.update(proxy_dict)
+            if self.args.use_ubuntu_images_deb:
+                lb_env["LB_USE_UBUNTU_IMAGES_DEB"] = self.args.use_ubuntu_images_deb
             self.run_build_command(["lb", "config"], env=lb_env)
             self.run_build_command(["lb", "build"], env=base_lb_env)
 
diff --git a/lpbuildd/target/tests/test_build_livefs.py b/lpbuildd/target/tests/test_build_livefs.py
index ad220c3..c62408a 100644
--- a/lpbuildd/target/tests/test_build_livefs.py
+++ b/lpbuildd/target/tests/test_build_livefs.py
@@ -440,3 +440,61 @@ class TestBuildLiveFS(TestCase):
         build_livefs = parse_args(args=args).operation
         build_livefs.backend.run = FailBuild()
         self.assertEqual(RETCODE_FAILURE_BUILD, build_livefs.run())
+
+    def test_run_build_with_ubuntu_images_package(self):
+        args = [
+            "buildlivefs",
+            "--backend=fake",
+            "--series=noble",
+            "--arch=arm64",
+            "--project=ubuntu-cpc",
+            "1",
+            "--use-ubuntu-images-deb=ubuntu-images",
+        ]
+        expected_env = {
+            "ARCH": "arm64",
+            "SUITE": "noble",
+            "PROJECT": "ubuntu-cpc",
+            "LB_USE_UBUNTU_IMAGES_DEB": "ubuntu-images",
+        }
+        build_livefs = parse_args(args=args).operation
+        build_livefs.build()
+
+        self.assertThat(
+            build_livefs.backend.run.calls,
+            MatchesListwise(
+                [
+                    RanBuildCommand(["rm", "-rf", "auto", "local"]),
+                    RanBuildCommand(["mkdir", "-p", "auto"]),
+                    RanBuildCommand(
+                        [
+                            "ln",
+                            "-s",
+                            "/usr/share/livecd-rootfs/live-build/auto/config",
+                            "auto/",
+                        ]
+                    ),
+                    RanBuildCommand(
+                        [
+                            "ln",
+                            "-s",
+                            "/usr/share/livecd-rootfs/live-build/auto/build",
+                            "auto/",
+                        ]
+                    ),
+                    RanBuildCommand(
+                        [
+                            "ln",
+                            "-s",
+                            "/usr/share/livecd-rootfs/live-build/auto/clean",
+                            "auto/",
+                        ]
+                    ),
+                    RanBuildCommand(["lb", "clean", "--purge"]),
+                    RanBuildCommand(
+                        ["lb", "config"], **expected_env
+                    ),
+                    RanBuildCommand(["lb", "build"], PROJECT="ubuntu-cpc", ARCH="arm64"),
+                ]
+            ),
+        )
diff --git a/lpbuildd/tests/test_livefs.py b/lpbuildd/tests/test_livefs.py
index 25eea06..c50add6 100644
--- a/lpbuildd/tests/test_livefs.py
+++ b/lpbuildd/tests/test_livefs.py
@@ -214,3 +214,15 @@ class TestLiveFilesystemBuildManagerIteration(TestCase):
                 }
             ),
         )
+
+    @defer.inlineCallbacks
+    def test_use_ubuntu_images_deb(self):
+        expected_options = [
+            "--use-ubuntu-images-deb",
+            "ubuntu-images",
+        ]
+        yield self.startBuild({
+                "use_ubuntu_images_deb": "ubuntu-images"
+            },
+            options=expected_options
+        )
_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to