pungi/pungi
Adam Williamson 0483f914c4 Don't block main image build phase on ostree_install phase
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.

Merges: https://pagure.io/pungi/pull-request/1790
Signed-off-by: Adam Williamson <awilliam@redhat.com>
(cherry picked from commit 18bda22fcb842c00a606e5f357aeb9f3d02aa626)
2025-09-29 18:15:20 +03:00
..
compose_metadata Format code base with black 2020-02-05 17:35:47 +08:00
ostree ostree/container: add missing --version arg 2024-08-30 13:39:44 +03:00
phases ostree_container: make filename configurable, include arch 2025-09-29 18:15:19 +03:00
scripts Don't block main image build phase on ostree_install phase 2025-09-29 18:15:20 +03:00
wrappers createiso: Recompute .treeinfo checksums for images 2024-08-30 13:40:47 +03:00
__init__.py Format code base with black 2020-02-05 17:35:47 +08:00
arch_utils.py use noarch with riscv64 2025-09-01 12:04:36 +00:00
arch.py - Add x86_64_v2 to a lisf of exclusive arches if there is any arch with base x86_64 2024-09-27 15:43:27 +03:00
checks.py ostree_container: make filename configurable, include arch 2025-09-29 18:15:19 +03:00
common.py Format code base with black 2020-02-05 17:35:47 +08:00
compose.py Handle tracebacks as str or bytes 2024-08-30 13:39:45 +03:00
config.py Format code base with black 2020-02-05 17:35:47 +08:00
createiso.py createiso: Recompute .treeinfo checksums for images 2024-08-30 13:40:47 +03:00
dnf_wrapper.py Format code base with black 2020-02-05 17:35:47 +08:00
errors.py Move UnsignedPackagesError to a separate file 2021-02-08 10:16:32 +00:00
gather_dnf.py Drop compatibility helper for dnf.Package.source_name 2025-09-29 18:15:18 +03:00
gather.py Fix black complaints 2023-11-10 16:50:38 +02:00
graph.py Format code 2021-03-02 18:31:45 +08:00
ks.py Format code base with black 2020-02-05 17:35:47 +08:00
linker.py Hardlink or copy scratch builds always 2020-08-07 18:00:19 +08:00
media_split.py Fix black complaint 2022-08-10 09:04:41 +02:00
metadata.py Remove useless debug message 2023-11-10 16:52:27 +02:00
module_util.py Fix module defaults and obsoletes validation 2022-06-10 11:35:26 +00:00
multilib_dnf.py Format code base with black 2020-02-05 17:35:47 +08:00
multilib_yum.py Format code base with black 2020-02-05 17:35:47 +08:00
notifier.py Fix the wrong working directory for the progress_notification script 2022-03-01 11:25:06 +00:00
pathmatch.py Remove FSF address from comments 2016-09-23 10:26:43 +02:00
paths.py Add module obsoletes feature 2022-01-12 12:51:37 +01:00
profiler.py profiler: Flush stdout before printing 2022-08-29 05:57:14 +00:00
runroot.py Make latest black happy 2024-08-30 13:31:29 +03:00
util.py - Truncate a volume ID to 32 bytes 2024-09-06 22:28:38 +03:00