| |
@@ -476,11 +476,15 @@
|
| |
buildinstall_phase,
|
| |
(gather_phase, createrepo_phase),
|
| |
extrafiles_phase,
|
| |
+ )
|
| |
+ ostree_schema = (
|
| |
(ostree_phase, ostree_installer_phase),
|
| |
ostree_container_phase,
|
| |
)
|
| |
essentials_phase = pungi.phases.WeaverPhase(compose, essentials_schema)
|
| |
+ ostree_phase = pungi.phases.WeaverPhase(compose, ostree_schema)
|
| |
essentials_phase.start()
|
| |
+ ostree_phase.start()
|
| |
essentials_phase.stop()
|
| |
|
| |
# write treeinfo before ISOs are created
|
| |
@@ -507,12 +511,9 @@
|
| |
osbuild_phase,
|
| |
kiwibuild_phase,
|
| |
)
|
| |
- post_image_phase = pungi.phases.WeaverPhase(
|
| |
- compose, (image_checksum_phase, image_container_phase)
|
| |
- )
|
| |
compose_images_phase = pungi.phases.WeaverPhase(compose, compose_images_schema)
|
| |
extra_phase_schema = (
|
| |
- (compose_images_phase, post_image_phase),
|
| |
+ (compose_images_phase, image_container_phase),
|
| |
osbs_phase,
|
| |
repoclosure_phase,
|
| |
)
|
| |
@@ -520,6 +521,12 @@
|
| |
|
| |
extra_phase.start()
|
| |
extra_phase.stop()
|
| |
+ # wait for ostree phase here too - it can happily run in parallel
|
| |
+ # with all of the other stuff
|
| |
+ ostree_phase.stop()
|
| |
+ # now we do checksums as all images are done
|
| |
+ image_checksum_phase.start()
|
| |
+ image_checksum_phase.stop()
|
| |
|
| |
pungi.metadata.write_compose_info(compose)
|
| |
if not (
|
| |
I did a time map of a Fedora compose today, and noticed that we
spend about an hour waiting for the ostree_install phase to
complete before we start up the compose_images_phase which does
all the other image builds.
This is unnecessary. Nothing else depends on ostree_install; it
should be fine to start up the extra_phase (which contains
compose_images_phase) while the ostree stuff is still running.
This implements that by splitting the ostree phases out of the
essentials_phase which contains the real precursors to the
extra_phase. We start the essentials and ostree phases together,
but only wait for the essentials phase to complete before
kicking off extra_phase, so it can start while the ostree
phase is still running.
One tweak we have to make to accommodate this is to move
image_checksum_phase out of extra_phase, to avoid it potentially
running before all ostree installer images are built. The
checksum phase is quite fast - it takes about five minutes -
and any time benefit of running it in parallel with the osbs and
repoclosure phases seems like it must be smaller than the time
loss of waiting for ostree_install before kicking off extra.
Signed-off-by: Adam Williamson awilliam@redhat.com