Reorder ostree and ostree_installer phases

osbuild phase needs to wait for ostree phase in some cases, this patch
makes the various image build phases waiting for ostree phase, it may
introduce some slowdown, but it's still faster than the version before
PR#1790.

JIRA: RHELCMP-14349
Fixes: https://pagure.io/pungi/issue/1816
Signed-off-by: Haibo Lin <hlin@redhat.com>
This commit is contained in:
Haibo Lin 2025-03-03 18:23:46 +08:00
parent 6a9c8551d2
commit b3e0b6d7b7
2 changed files with 37 additions and 43 deletions

View file

@ -5,7 +5,7 @@
viewBox="0 0 698.46506 367.16599"
id="svg2"
version="1.1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
sodipodi:docname="phases.svg"
inkscape:export-filename="/home/lsedlar/repos/pungi/doc/_static/phases.png"
inkscape:export-xdpi="90"
@ -24,16 +24,16 @@
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="2.1213203"
inkscape:cx="364.8671"
inkscape:cy="156.0349"
inkscape:zoom="1.5268051"
inkscape:cx="281.30637"
inkscape:cy="222.68723"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1368"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
units="px"
inkscape:document-rotation="0"
@ -254,46 +254,43 @@
transform="translate(-48.38832,300.30474)">
<rect
transform="matrix(0,1,1,0,0,0)"
y="254.60153"
x="823.54675"
height="53.653927"
y="253.37347"
x="670.65399"
height="137.77563"
width="26.295755"
id="rect3350-3"
style="fill:#729fcf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
style="fill:#729fcf;fill-rule:evenodd;stroke:none;stroke-width:1.60245px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text3380-2"
y="840.3219"
y="688.04315"
x="256.90588"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:13.1479px;line-height:1.25"
id="tspan3406"
sodipodi:role="line"
x="256.90588"
y="840.3219">OSTree</tspan></text>
y="688.04315"
sodipodi:role="line">OSTree</tspan></text>
</g>
<g
id="g12">
<rect
style="fill:#fcaf3e;fill-rule:evenodd;stroke:none;stroke-width:1.74848px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect3428"
width="26.295755"
height="311.37448"
x="1123.3074"
y="264.68936"
transform="matrix(0,1,1,0,0,0)" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="266.99371"
<rect
style="fill:#fcaf3e;fill-rule:evenodd;stroke:none;stroke-width:1.48564px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect3428"
width="26.295755"
height="224.79666"
x="1122.0793"
y="351.26718"
transform="matrix(0,1,1,0,0,0)" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="355.4136"
y="1140.0824"
id="text3430"><tspan
id="tspan283"
sodipodi:role="line"
x="355.4136"
y="1140.0824"
id="text3430"><tspan
id="tspan283"
sodipodi:role="line"
x="266.99371"
y="1140.0824"
style="font-size:12px;line-height:0">OSTreeInstaller</tspan></text>
</g>
style="font-size:12px;line-height:0">OSTreeInstaller</tspan></text>
<g
id="g11">
<rect

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

View file

@ -475,15 +475,11 @@ def run_compose(
buildinstall_phase,
(gather_phase, createrepo_phase),
extrafiles_phase,
)
ostree_schema = (
(ostree_phase, ostree_installer_phase),
ostree_container_phase,
ostree_phase,
)
essentials_phase = pungi.phases.WeaverPhase(compose, essentials_schema)
ostree_phase = pungi.phases.WeaverPhase(compose, ostree_schema)
essentials_phase.start()
ostree_phase.start()
ostree_container_phase.start()
try:
essentials_phase.stop()
@ -514,6 +510,7 @@ def run_compose(
compose_images_phase = pungi.phases.WeaverPhase(compose, compose_images_schema)
extra_phase_schema = (
(compose_images_phase, image_container_phase),
ostree_installer_phase,
osbs_phase,
repoclosure_phase,
)
@ -522,9 +519,9 @@ def run_compose(
extra_phase.start()
extra_phase.stop()
finally:
# wait for ostree phase here too - it can happily run in parallel with
# wait for ostree container phase here too - it can happily run in parallel with
# all of the other stuff, but we must ensure it always gets stopped
ostree_phase.stop()
ostree_container_phase.stop()
# now we do checksums as all images are done
image_checksum_phase.start()