Merge lp:~cjwatson/launchpad-buildd/livefs-debug into lp:launchpad-buildd

Proposed by Colin Watson
Status: Merged
Merged at revision: 283
Proposed branch: lp:~cjwatson/launchpad-buildd/livefs-debug
Merge into: lp:launchpad-buildd
Diff against target: 113 lines (+45/-2)
4 files modified
debian/changelog (+7/-0)
lpbuildd/livefs.py (+3/-0)
lpbuildd/target/build_livefs.py (+8/-1)
lpbuildd/target/tests/test_build_livefs.py (+27/-1)
To merge this branch: bzr merge lp:~cjwatson/launchpad-buildd/livefs-debug
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+330662@code.launchpad.net

Commit message

Accept a "debug" entry in livefs arguments, which enables detailed live-build debugging.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)
284. By Colin Watson

Fix version number.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2017-09-08 00:42:04 +0000
3+++ debian/changelog 2017-09-13 11:30:41 +0000
4@@ -1,3 +1,10 @@
5+launchpad-buildd (152) UNRELEASED; urgency=medium
6+
7+ * Accept a "debug" entry in livefs arguments, which enables detailed
8+ live-build debugging.
9+
10+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 12 Sep 2017 18:31:48 +0100
11+
12 launchpad-buildd (151) xenial; urgency=medium
13
14 * Run snapd with SNAPPY_STORE_NO_CDN=1, since the buildd network isn't
15
16=== modified file 'lpbuildd/livefs.py'
17--- lpbuildd/livefs.py 2017-08-26 09:51:15 +0000
18+++ lpbuildd/livefs.py 2017-09-13 11:30:41 +0000
19@@ -36,6 +36,7 @@
20 self.image_format = extra_args.get("image_format")
21 self.locale = extra_args.get("locale")
22 self.extra_ppas = extra_args.get("extra_ppas", [])
23+ self.debug = extra_args.get("debug", False)
24
25 super(LiveFilesystemBuildManager, self).initiate(
26 files, chroot, extra_args)
27@@ -58,6 +59,8 @@
28 args.extend(["--locale", self.locale])
29 for ppa in self.extra_ppas:
30 args.extend(["--extra-ppa", ppa])
31+ if self.debug:
32+ args.append("--debug")
33 self.runTargetSubProcess("buildlivefs", *args)
34
35 def iterate_BUILD_LIVEFS(self, retcode):
36
37=== modified file 'lpbuildd/target/build_livefs.py'
38--- lpbuildd/target/build_livefs.py 2017-08-29 08:53:24 +0000
39+++ lpbuildd/target/build_livefs.py 2017-09-13 11:30:41 +0000
40@@ -58,6 +58,9 @@
41 parser.add_argument(
42 "--extra-ppa", dest="extra_ppas", default=[], action="append",
43 help="use this additional PPA")
44+ parser.add_argument(
45+ "--debug", default=False, action="store_true",
46+ help="enable detailed live-build debugging")
47
48 def run_build_command(self, args, env=None, echo=False):
49 """Run a build command in the chroot.
50@@ -106,12 +109,16 @@
51 "--release", self.args.series,
52 ])
53 else:
54- self.run_build_command(["rm", "-rf", "auto"])
55+ self.run_build_command(["rm", "-rf", "auto", "local"])
56 self.run_build_command(["mkdir", "-p", "auto"])
57 for lb_script in ("config", "build", "clean"):
58 lb_script_path = os.path.join(
59 "/usr/share/livecd-rootfs/live-build/auto", lb_script)
60 self.run_build_command(["ln", "-s", lb_script_path, "auto/"])
61+ if self.args.debug:
62+ self.run_build_command(["mkdir", "-p", "local/functions"])
63+ self.run_build_command(
64+ ["sh", "-c", "echo 'set -x' >local/functions/debug.sh"])
65 self.run_build_command(["lb", "clean", "--purge"])
66
67 base_lb_env = OrderedDict()
68
69=== modified file 'lpbuildd/target/tests/test_build_livefs.py'
70--- lpbuildd/target/tests/test_build_livefs.py 2017-08-22 16:37:25 +0000
71+++ lpbuildd/target/tests/test_build_livefs.py 2017-09-13 11:30:41 +0000
72@@ -120,7 +120,7 @@
73 build_livefs = parse_args(args=args).operation
74 build_livefs.build()
75 self.assertThat(build_livefs.backend.run.calls, MatchesListwise([
76- RanBuildCommand("rm -rf auto"),
77+ RanBuildCommand("rm -rf auto local"),
78 RanBuildCommand("mkdir -p auto"),
79 RanBuildCommand(
80 "ln -s /usr/share/livecd-rootfs/live-build/auto/config auto/"),
81@@ -148,6 +148,32 @@
82 "--release xenial"),
83 ]))
84
85+ def test_build_debug(self):
86+ args = [
87+ "buildlivefs",
88+ "--backend=fake", "--series=xenial", "--arch=amd64", "1",
89+ "--project=ubuntu", "--debug",
90+ ]
91+ build_livefs = parse_args(args=args).operation
92+ build_livefs.build()
93+ self.assertThat(build_livefs.backend.run.calls, MatchesListwise([
94+ RanBuildCommand("rm -rf auto local"),
95+ RanBuildCommand("mkdir -p auto"),
96+ RanBuildCommand(
97+ "ln -s /usr/share/livecd-rootfs/live-build/auto/config auto/"),
98+ RanBuildCommand(
99+ "ln -s /usr/share/livecd-rootfs/live-build/auto/build auto/"),
100+ RanBuildCommand(
101+ "ln -s /usr/share/livecd-rootfs/live-build/auto/clean auto/"),
102+ RanBuildCommand("mkdir -p local/functions"),
103+ RanBuildCommand(
104+ "sh -c 'echo '\\''set -x'\\'' >local/functions/debug.sh'"),
105+ RanBuildCommand("lb clean --purge"),
106+ RanBuildCommand(
107+ "env PROJECT=ubuntu ARCH=amd64 SUITE=xenial lb config"),
108+ RanBuildCommand("env PROJECT=ubuntu ARCH=amd64 lb build"),
109+ ]))
110+
111 def test_run_succeeds(self):
112 args = [
113 "buildlivefs",

Subscribers

People subscribed via source and target branches

to all changes: