diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index f5b339410..ea003dbef 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -18,7 +18,7 @@ jobs: publish-images: strategy: matrix: - test_os: [fedora-43, fedora-44, centos-9, centos-10] + test_os: [fedora-43, fedora-44, fedora-45, centos-9, centos-10] variant: [ostree, composefs-sealeduki-sdboot] exclude: # centos-9 UKI is experimental/broken (https://github.com/bootc-dev/bootc/issues/1812) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f3483d8a..ab21dfc7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -127,7 +127,7 @@ jobs: strategy: fail-fast: false matrix: - test_os: [fedora-43, fedora-44, centos-9, centos-10] + test_os: [fedora-43, fedora-44, fedora-45, centos-9, centos-10] runs-on: ubuntu-24.04 @@ -159,8 +159,7 @@ jobs: strategy: fail-fast: false matrix: - # No fedora-44 due to https://bugzilla.redhat.com/show_bug.cgi?id=2429501 - test_os: [fedora-43, centos-9, centos-10] + test_os: [fedora-43, fedora-44, centos-9, centos-10] variant: [ostree, composefs] filesystem: ["ext4", "xfs"] bootloader: ["grub", "systemd"] diff --git a/.packit.yaml b/.packit.yaml index d57a14873..9bcfae7b2 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -43,6 +43,9 @@ jobs: - fedora-43-x86_64 - fedora-43-aarch64 - fedora-43-s390x + - fedora-44-x86_64 + - fedora-44-aarch64 + - fedora-44-s390x # Sanity check on secondary targets, fewer architectures just # because the chance that we break e.g. ppc64le *just* on # rawhide is basically nil. @@ -69,9 +72,10 @@ jobs: - centos-stream-10-aarch64 - fedora-43-x86_64 - fedora-43-aarch64 - # https://bugzilla.redhat.com/show_bug.cgi?id=2429501 - # - fedora-rawhide-x86_64 - # - fedora-rawhide-aarch64 + - fedora-44-x86_64 + - fedora-44-aarch64 + - fedora-rawhide-x86_64 + - fedora-rawhide-aarch64 tmt_plan: /tmt/plans/integration tf_extra_params: environments: diff --git a/crates/lib/src/deploy.rs b/crates/lib/src/deploy.rs index 8684c334d..c4aca8acf 100644 --- a/crates/lib/src/deploy.rs +++ b/crates/lib/src/deploy.rs @@ -504,10 +504,19 @@ pub(crate) async fn prepare_for_pull_unified( // Pull the image to bootc storage using the same method as LBIs // Show a spinner since podman pull can take a while and doesn't output progress let pull_msg = format!("Pulling {} to bootc storage", &image_ref_str); + let is_containers_storage = imgref.transport == "containers-storage"; + let image_name = imgref.image.clone(); async_task_with_spinner(&pull_msg, async move { - imgstore - .pull(&image_ref_str, crate::podstorage::PullMode::Always) - .await + if is_containers_storage { + // For containers-storage transport, use pull_from_host_storage which + // properly copies from host container storage to bootc storage + imgstore.pull_from_host_storage(&image_name).await?; + Ok(true) + } else { + imgstore + .pull(&image_ref_str, crate::podstorage::PullMode::Always) + .await + } }) .await?; diff --git a/hack/os-image-map.json b/hack/os-image-map.json index 80ab247c4..ed5340d33 100644 --- a/hack/os-image-map.json +++ b/hack/os-image-map.json @@ -6,13 +6,15 @@ "centos-10": "quay.io/centos-bootc/centos-bootc:stream10", "fedora-42": "quay.io/fedora/fedora-bootc:42", "fedora-43": "quay.io/fedora/fedora-bootc:43", - "fedora-44": "quay.io/fedora/fedora-bootc:rawhide" + "fedora-44": "quay.io/fedora/fedora-bootc:44", + "fedora-45": "quay.io/fedora/fedora-bootc:rawhide" }, "buildroot-base": { "centos-9": "quay.io/centos/centos:stream9", "centos-10": "quay.io/centos/centos:stream10", "fedora-42": "quay.io/fedora/fedora:42", "fedora-43": "quay.io/fedora/fedora:43", - "fedora-44": "quay.io/fedora/fedora:rawhide" + "fedora-44": "quay.io/fedora/fedora:44", + "fedora-45": "quay.io/fedora/fedora:rawhide" } } diff --git a/tmt/tests/booted/test-install-outside-container.nu b/tmt/tests/booted/test-install-outside-container.nu index 27335399c..ebbe0206b 100644 --- a/tmt/tests/booted/test-install-outside-container.nu +++ b/tmt/tests/booted/test-install-outside-container.nu @@ -6,11 +6,9 @@ use std assert use tap.nu -# In this test we install a generic image mainly because it keeps -# this test in theory independent of starting from a bootc host, -# but also because it's useful to test "skew" between the bootc binary -# doing the install and the target image. -let target_image = "docker://quay.io/centos-bootc/centos-bootc:stream9" +# Copy the booted image to container storage for use as install source +bootc image copy-to-storage +let target_image = "containers-storage:localhost/bootc" # setup filesystem mkdir /var/mnt @@ -33,8 +31,14 @@ let base_args = $"bootc install to-disk --disable-selinux --via-loopback --sourc let install_cmd = if (tap is_composefs) { let st = bootc status --json | from json - let bootloader = ($st.status.booted.composefs.bootloader | str downcase) - $"($base_args) --composefs-backend --bootloader=($bootloader) --filesystem ext4 ./disk.img" + let boot_type = ($st.status.booted.composefs.bootType | str downcase) + # For UKI images, don't pass --bootloader as UKI boot setup handles it differently + if $boot_type == "uki" { + $"($base_args) --composefs-backend --filesystem ext4 ./disk.img" + } else { + let bootloader = ($st.status.booted.composefs.bootloader | str downcase) + $"($base_args) --composefs-backend --bootloader=($bootloader) --filesystem ext4 ./disk.img" + } } else { $"($base_args) --filesystem xfs ./disk.img" } diff --git a/tmt/tests/booted/test-install-unified-flag.nu b/tmt/tests/booted/test-install-unified-flag.nu index c967bef85..ef8356347 100644 --- a/tmt/tests/booted/test-install-unified-flag.nu +++ b/tmt/tests/booted/test-install-unified-flag.nu @@ -12,9 +12,9 @@ use std assert use tap.nu -# Use a generic target image to test skew between the bootc binary doing -# the install and the target image -let target_image = "docker://quay.io/centos-bootc/centos-bootc:stream9" +# Copy the booted image to container storage for use as install source +bootc image copy-to-storage +let target_image = "containers-storage:localhost/bootc" def main [] { tap begin "install with experimental unified storage flag"