launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #30854
[Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
Simone Pelosi has proposed merging ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master.
Commit message:
Added support for snap components
`.comp` files must be added to file cache.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~pelpsi/launchpad-buildd/+git/launchpad-buildd/+merge/459807
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master.
diff --git a/debian/changelog b/debian/changelog
index 4849b34..e8bf844 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,6 @@
launchpad-buildd (236) UNRELEASED; urgency=medium
+ [ Colin Watson ]
* Add lxc.cgroup2.* configuration, for compatibility with future
environments where we use unified cgroup2. (However, we should keep
using systemd.unified_cgroup_hierarchy=false until we drop support for
@@ -9,6 +10,9 @@ launchpad-buildd (236) UNRELEASED; urgency=medium
separately.
* Document deployment to qastaging in place of dogfood.
+ [Simone Pelosi]
+ * Add support for snap components.
+
-- Colin Watson <cjwatson@xxxxxxxxxx> Thu, 16 Nov 2023 16:06:07 +0000
launchpad-buildd (235) focal; urgency=medium
diff --git a/lpbuildd/snap.py b/lpbuildd/snap.py
index d922242..d840093 100644
--- a/lpbuildd/snap.py
+++ b/lpbuildd/snap.py
@@ -139,7 +139,7 @@ class SnapBuildManager(BuildManagerProxyMixin, DebianBuildManager):
if self.backend.islink(path):
continue
if entry.endswith(
- (".snap", ".manifest", ".debug", ".dpkg.yaml")
+ (".snap", ".manifest", ".debug", ".dpkg.yaml", ".comp")
):
self.addWaitingFileFromBackend(path)
if self.build_source_tarball:
diff --git a/lpbuildd/tests/test_snap.py b/lpbuildd/tests/test_snap.py
index 0e44093..42834a3 100644
--- a/lpbuildd/tests/test_snap.py
+++ b/lpbuildd/tests/test_snap.py
@@ -255,6 +255,78 @@ class TestSnapBuildManagerIteration(TestCase):
self.assertFalse(self.builder.wasCalled("buildFail"))
@defer.inlineCallbacks
+ def test_iterate_with_components(self):
+ # The build manager iterates a build that uploads components from
+ # start to finish.
+ args = {
+ "git_repository": "https://git.launchpad.dev/~example/+git/snap",
+ "git_path": "master",
+ }
+ expected_options = [
+ "--git-repository",
+ "https://git.launchpad.dev/~example/+git/snap",
+ "--git-path",
+ "master",
+ ]
+ yield self.startBuild(args, expected_options)
+
+ log_path = os.path.join(self.buildmanager._cachepath, "buildlog")
+ with open(log_path, "w") as log:
+ log.write("I am a build log.")
+
+ self.buildmanager.backend.add_file(
+ "/build/test-snap/test-snap_0_all.snap", b"I am a snap package."
+ )
+ self.buildmanager.backend.add_file(
+ "/build/test-snap/test-snap_0_all.comp", b"I am a component."
+ )
+
+ # After building the package, reap processes.
+ yield self.buildmanager.iterate(0)
+ expected_command = [
+ "sharepath/bin/in-target",
+ "in-target",
+ "scan-for-processes",
+ "--backend=lxd",
+ "--series=xenial",
+ "--arch=i386",
+ self.buildid,
+ ]
+ self.assertEqual(SnapBuildState.BUILD_SNAP, self.getState())
+ self.assertEqual(expected_command, self.buildmanager.commands[-1])
+ self.assertNotEqual(
+ self.buildmanager.iterate, self.buildmanager.iterators[-1]
+ )
+ self.assertFalse(self.builder.wasCalled("buildFail"))
+ self.assertThat(
+ self.builder,
+ HasWaitingFiles.byEquality(
+ {
+ "test-snap_0_all.comp": b"I am a component.",
+ "test-snap_0_all.snap": b"I am a snap package.",
+ }
+ ),
+ )
+
+ # Control returns to the DebianBuildManager in the UMOUNT state.
+ self.buildmanager.iterateReap(self.getState(), 0)
+ expected_command = [
+ "sharepath/bin/in-target",
+ "in-target",
+ "umount-chroot",
+ "--backend=lxd",
+ "--series=xenial",
+ "--arch=i386",
+ self.buildid,
+ ]
+ self.assertEqual(SnapBuildState.UMOUNT, self.getState())
+ self.assertEqual(expected_command, self.buildmanager.commands[-1])
+ self.assertEqual(
+ self.buildmanager.iterate, self.buildmanager.iterators[-1]
+ )
+ self.assertFalse(self.builder.wasCalled("buildFail"))
+
+ @defer.inlineCallbacks
def test_iterate_with_debug(self):
# The build manager iterates a build that uploads debug symbols from
# start to finish.
Follow ups
-
[Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-12
-
[Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-12
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-10
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Dimitri John Ledkov, 2024-02-10
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Dimitri John Ledkov, 2024-02-10
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-08
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Dimitri John Ledkov, 2024-02-01
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Simone Pelosi, 2024-02-01
-
[Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Simone Pelosi, 2024-02-01
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-01
-
Re: [Merge] ~pelpsi/launchpad-buildd:snap-components-support into launchpad-buildd:master
From: Jürgen Gmach, 2024-02-01