ci: Update for Fedora 44 branching from rawhide#1986
ci: Update for Fedora 44 branching from rawhide#1986jeckersb wants to merge 2 commits intobootc-dev:mainfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the CI configuration for the Fedora 44 branching. The changes correctly point fedora-44 to its own release tag instead of rawhide, introduce fedora-45 as the new rawhide, and update the Packit and integration test matrices. The re-enabling of rawhide tests is also correctly implemented. The changes are consistent and align perfectly with the pull request description. I see no issues.
cgwalters
left a comment
There was a problem hiding this comment.
I'm OK with this, but a definite downside is again increasing the test matrix run on every PR. We may need to move some testing to be postsubmit.
|
Looks like GRUB is still busted in f44 |
fcb2a72 to
356445a
Compare
|
Rebased, we'll see if grub is still busted... |
|
Hm not sure offhand what this is about in c10s (Edit: also f44)... |
Looks like https://bugzilla.redhat.com/show_bug.cgi?id=2436646 is related. |
|
I can't reproduce the CI failure by running through the unified storage test manually. I'll force one more CI run just in case it got fixed between last night and now... |
|
Ok still failing. I did manage to reproduce it locally, but only by running through the So libc is |
|
A bit more detail, running the test with |
There's something weird going on with selinux labeling, see discussion at: bootc-dev#1986 Disable the test for now while we troubleshoot, because it's blocking other stuff that needs to merge. Signed-off-by: John Eckersberg <jeckersb@redhat.com>
There's something weird going on with selinux labeling, see discussion at: bootc-dev#1986 Disable the test for now while we troubleshoot, because it's blocking other stuff that needs to merge. Signed-off-by: John Eckersberg <jeckersb@redhat.com>
There's something weird going on with selinux labeling, see discussion at: #1986 Disable the test for now while we troubleshoot, because it's blocking other stuff that needs to merge. Signed-off-by: John Eckersberg <jeckersb@redhat.com>
356445a to
97becb9
Compare
|
Rebased 🏄 to see if picking up #2014 will move this along... |
|
Ok grub appears to still be busted on F44. Probably going to start being a problem for us sooner than later since we're now in beta freeze... |
|
Our bootc 1.13.0 fedora 44 and 45 gating tests have same failure. |
|
Okey, AI told me: I think we can use same diff --git i/tmt/tests/booted/tap.nu w/tmt/tests/booted/tap.nu
index ae1576da..0100fcbd 100644
--- i/tmt/tests/booted/tap.nu
+++ w/tmt/tests/booted/tap.nu
@@ -18,3 +18,62 @@ export def is_composefs [] {
let st = bootc status --json | from json
$st.status.booted.composefs? != null
}
+
+# Get the target image for install tests based on the running OS
+# This ensures the target image matches the host OS to avoid version mismatches
+# (e.g., XFS features created by newer mkfs.xfs not recognized by older grub2)
+export def get_target_image [] {
+ # Parse os-release to get ID and VERSION_ID
+ let os = open /usr/lib/os-release
+ | lines
+ | filter {|l| $l != "" and not ($l | str starts-with "#") }
+ | parse "{key}={value}"
+ | reduce -f {} {|it, acc|
+ $acc | upsert $it.key ($it.value | str trim -c '"')
+ }
+
+ let id = $os.ID
+ let version_id = $os.VERSION_ID
+
+ # Construct the key for os-image-map.json
+ let key = if $id == "centos" {
+ # CentOS uses "centos-9" or "centos-10" format
+ $"centos-($version_id)"
+ } else if $id == "fedora" {
+ $"fedora-($version_id)"
+ } else if $id == "rhel" {
+ # RHEL uses "rhel-9.8" or "rhel-10.2" format
+ $"rhel-($version_id)"
+ } else {
+ # Fallback to centos-9 for unknown distros
+ "centos-9"
+ }
+
+ # Load the os-image-map.json - try multiple possible locations
+ let possible_paths = [
+ "hack/os-image-map.json",
+ "../../../hack/os-image-map.json",
+ "/var/home/bootc/hack/os-image-map.json"
+ ]
+
+ mut image_map = null
+ for p in $possible_paths {
+ if ($p | path exists) {
+ $image_map = (open $p)
+ break
+ }
+ }
+
+ # If map not found, use default centos-9 image
+ if ($image_map == null) {
+ return "docker://quay.io/centos-bootc/centos-bootc:stream9"
+ }
+
+ let image = $image_map.base | get -i $key
+ if ($image | is-empty) {
+ # Fallback to centos-9 if key not found
+ $"docker://($image_map.base.centos-9)"
+ } else {
+ $"docker://($image)"
+ }
+}
diff --git i/tmt/tests/booted/test-install-outside-container.nu w/tmt/tests/booted/test-install-outside-container.nu
index 312c5715..b9c6831e 100644
--- i/tmt/tests/booted/test-install-outside-container.nu
+++ w/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"
+# Get the target image based on the running OS to avoid version mismatches
+# (e.g., XFS features created by newer mkfs.xfs not recognized by older grub2)
+let target_image = (tap get_target_image)
# setup filesystem
mkdir /var/mnt
diff --git i/tmt/tests/booted/test-install-unified-flag.nu w/tmt/tests/booted/test-install-unified-flag.nu
index 00620b6e..71a8e2aa 100644
--- i/tmt/tests/booted/test-install-unified-flag.nu
+++ w/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"
+# Get the target image based on the running OS to avoid version mismatches
+# (e.g., XFS features created by newer mkfs.xfs not recognized by older grub2)
+let target_image = (tap get_target_image)
def main [] {
tap begin "install with experimental unified storage flag" |
Right, didn't you already land that same fix in another PR? |
|
Offhand I suspect this one just needs a rebase |
97becb9 to
8b4c7d0
Compare
|
Rebased 🏄 |
Not in |
OK right, sorry I misunderstood this before. Mmmm....IIRC i mentioned this before but you know what would make this all SO much cleaner is for us to add e.g. A different possibility for install-outside-container.nu is for us to drop it and instead add testing via anaconda/bootc-image-builder as part of PRs which would cover this case. For |
Fedora 44 has branched from rawhide, so update the CI matrix accordingly: - Point fedora-44 images to :44 instead of :rawhide - Add fedora-45 as the new rawhide - Add fedora-44 to integration test matrix (BZ 2429501 is fixed) - Add fedora-44 to Packit COPR and TMT test targets - Re-enable rawhide Packit TMT tests (BZ 2429501 is fixed) Closes: bootc-dev#1985 Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: John Eckersberg <jeckersb@redhat.com>
8b4c7d0 to
5d4efc5
Compare
0de44a0 to
24dc909
Compare
|
Hmm wait a second this PR is starting to accumulate some nontrivial changes to core code, is that really related to fedora 44? |
24dc909 to
59f7fff
Compare
Add get_target_image function to tap.nu that selects the appropriate bootc target image based on the running OS. This avoids version mismatches (e.g., XFS features created by newer mkfs.xfs not recognized by older grub2). The function parses /usr/lib/os-release and looks up the image from hack/os-image-map.json, with fallbacks for missing configurations. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
59f7fff to
43dbe5d
Compare
I tried a lot for support |
| # Load the os-image-map.json - try multiple possible locations | ||
| let possible_paths = [ | ||
| "hack/os-image-map.json", | ||
| "../../../hack/os-image-map.json", | ||
| "/var/home/bootc/hack/os-image-map.json" | ||
| ] | ||
|
|
||
| mut image_map = null | ||
| for p in $possible_paths { | ||
| if ($p | path exists) { | ||
| $image_map = (open $p) | ||
| break | ||
| } | ||
| } | ||
|
|
||
| # If map not found, use default centos-9 image | ||
| if ($image_map == null) { | ||
| return "docker://quay.io/centos-bootc/centos-bootc:stream9" | ||
| } |
There was a problem hiding this comment.
I think it'd be cleaner to just copy os-image-map.json into e.g. /usr/lib/bootc/os-image-map.json as part of the container build.
Fedora 44 has branched from rawhide, so update the CI matrix
accordingly:
Closes: #1985
Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: John Eckersberg jeckersb@redhat.com