Merge ~tchavadar/launchpad-buildd:use-ubuntu-images-deb into launchpad-buildd:master

Proposed by Talha Can Havadar
Status: Needs review
Proposed branch: ~tchavadar/launchpad-buildd:use-ubuntu-images-deb
Merge into: launchpad-buildd:master
Diff against target: 133 lines (+81/-0)
4 files modified
lpbuildd/livefs.py (+3/-0)
lpbuildd/target/build_livefs.py (+8/-0)
lpbuildd/target/tests/test_build_livefs.py (+58/-0)
lpbuildd/tests/test_livefs.py (+12/-0)
Reviewer Review Type Date Requested Status
Launchpad code reviewers Pending
Review via email: mp+464761@code.launchpad.net

Description of the change

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.

To post a comment you must log in.
Revision history for this message
Hector CAO (hectorcao) wrote :

The unmerged commits list seems strange, perhaps is it work to rebase properly on https://code.launchpad.net/~launchpad/launchpad-buildd/+git/launchpad-buildd/+ref/master ?

Revision history for this message
Talha Can Havadar (tchavadar) wrote (last edit ):

Yep just rebased, it was weird maybe from the fork I dont know but it
should be ok now

Unmerged commits

99ca42d... by Talha Can Havadar

Add tests to cover --use-ubuntu-images-deb option

c927f85... by Talha Can Havadar

Add use-ubuntu-images-deb option to override git repo for image definition source

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lpbuildd/livefs.py b/lpbuildd/livefs.py
2index 6e8da92..68dc40c 100644
3--- a/lpbuildd/livefs.py
4+++ b/lpbuildd/livefs.py
5@@ -37,6 +37,7 @@ class LiveFilesystemBuildManager(DebianBuildManager):
6 self.repo_snapshot_stamp = extra_args.get("repo_snapshot_stamp")
7 self.cohort_key = extra_args.get("cohort-key")
8 self.debug = extra_args.get("debug", False)
9+ self.use_ubuntu_images_deb = extra_args.get("use_ubuntu_images_deb")
10
11 super().initiate(files, chroot, extra_args)
12
13@@ -77,6 +78,8 @@ class LiveFilesystemBuildManager(DebianBuildManager):
14 pass
15 if self.debug:
16 args.append("--debug")
17+ if self.use_ubuntu_images_deb:
18+ args.extend(["--use-ubuntu-images-deb", self.use_ubuntu_images_deb])
19 self.runTargetSubProcess("buildlivefs", *args)
20
21 def iterate_BUILD_LIVEFS(self, retcode):
22diff --git a/lpbuildd/target/build_livefs.py b/lpbuildd/target/build_livefs.py
23index ed94328..ad31838 100644
24--- a/lpbuildd/target/build_livefs.py
25+++ b/lpbuildd/target/build_livefs.py
26@@ -109,6 +109,12 @@ class BuildLiveFS(SnapStoreOperationMixin, Operation):
27 action="store_true",
28 help="enable detailed live-build debugging",
29 )
30+ parser.add_argument(
31+ "--use-ubuntu-images-deb",
32+ dest="use_ubuntu_images_deb",
33+ metavar="USE_UBUNTU_IMAGES_DEV",
34+ help="Use specified ubuntu-images package instead of git repository"
35+ )
36
37 def install(self):
38 deps = ["livecd-rootfs"]
39@@ -198,6 +204,8 @@ class BuildLiveFS(SnapStoreOperationMixin, Operation):
40 }
41 lb_env.update(proxy_dict)
42 base_lb_env.update(proxy_dict)
43+ if self.args.use_ubuntu_images_deb:
44+ lb_env["LB_USE_UBUNTU_IMAGES_DEB"] = self.args.use_ubuntu_images_deb
45 self.run_build_command(["lb", "config"], env=lb_env)
46 self.run_build_command(["lb", "build"], env=base_lb_env)
47
48diff --git a/lpbuildd/target/tests/test_build_livefs.py b/lpbuildd/target/tests/test_build_livefs.py
49index ad220c3..c62408a 100644
50--- a/lpbuildd/target/tests/test_build_livefs.py
51+++ b/lpbuildd/target/tests/test_build_livefs.py
52@@ -440,3 +440,61 @@ class TestBuildLiveFS(TestCase):
53 build_livefs = parse_args(args=args).operation
54 build_livefs.backend.run = FailBuild()
55 self.assertEqual(RETCODE_FAILURE_BUILD, build_livefs.run())
56+
57+ def test_run_build_with_ubuntu_images_package(self):
58+ args = [
59+ "buildlivefs",
60+ "--backend=fake",
61+ "--series=noble",
62+ "--arch=arm64",
63+ "--project=ubuntu-cpc",
64+ "1",
65+ "--use-ubuntu-images-deb=ubuntu-images",
66+ ]
67+ expected_env = {
68+ "ARCH": "arm64",
69+ "SUITE": "noble",
70+ "PROJECT": "ubuntu-cpc",
71+ "LB_USE_UBUNTU_IMAGES_DEB": "ubuntu-images",
72+ }
73+ build_livefs = parse_args(args=args).operation
74+ build_livefs.build()
75+
76+ self.assertThat(
77+ build_livefs.backend.run.calls,
78+ MatchesListwise(
79+ [
80+ RanBuildCommand(["rm", "-rf", "auto", "local"]),
81+ RanBuildCommand(["mkdir", "-p", "auto"]),
82+ RanBuildCommand(
83+ [
84+ "ln",
85+ "-s",
86+ "/usr/share/livecd-rootfs/live-build/auto/config",
87+ "auto/",
88+ ]
89+ ),
90+ RanBuildCommand(
91+ [
92+ "ln",
93+ "-s",
94+ "/usr/share/livecd-rootfs/live-build/auto/build",
95+ "auto/",
96+ ]
97+ ),
98+ RanBuildCommand(
99+ [
100+ "ln",
101+ "-s",
102+ "/usr/share/livecd-rootfs/live-build/auto/clean",
103+ "auto/",
104+ ]
105+ ),
106+ RanBuildCommand(["lb", "clean", "--purge"]),
107+ RanBuildCommand(
108+ ["lb", "config"], **expected_env
109+ ),
110+ RanBuildCommand(["lb", "build"], PROJECT="ubuntu-cpc", ARCH="arm64"),
111+ ]
112+ ),
113+ )
114diff --git a/lpbuildd/tests/test_livefs.py b/lpbuildd/tests/test_livefs.py
115index 25eea06..c50add6 100644
116--- a/lpbuildd/tests/test_livefs.py
117+++ b/lpbuildd/tests/test_livefs.py
118@@ -214,3 +214,15 @@ class TestLiveFilesystemBuildManagerIteration(TestCase):
119 }
120 ),
121 )
122+
123+ @defer.inlineCallbacks
124+ def test_use_ubuntu_images_deb(self):
125+ expected_options = [
126+ "--use-ubuntu-images-deb",
127+ "ubuntu-images",
128+ ]
129+ yield self.startBuild({
130+ "use_ubuntu_images_deb": "ubuntu-images"
131+ },
132+ options=expected_options
133+ )

Subscribers

People subscribed via source and target branches