Try and workaround IoT rebase problems with F37 read-only change

The change to read-only sysroot for IoT in F37 causes problems
with this rebase test. It's not supported to rebase from an RO
release (37 or 38) to a non-RO release (36). So we need to make
sure we don't try and do that. This uses some quick hack logic,
but it should be OK and sufficiently specific not to break
anything even if we forget to remove it in future.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2022-09-20 15:48:22 -07:00
parent 2be9d203f3
commit 093da03139
1 changed files with 23 additions and 8 deletions

View File

@ -21,6 +21,23 @@ sub run {
unless (script_run "rpm-ostree status -b | grep stable") {
$rebase = "devel";
}
# FIXME special cases for read-only transition from 36 to 37
# we can drop these (revert the whole relevant commit) once
# 37 is stable
my $orig;
if (get_var("CURRREL") eq "36") {
if (get_var("VERSION") eq "37") {
# rebase to rawhide
$rebase = "rawhide";
$orig = "devel";
}
elsif (get_var("VERSION") eq "38") {
# rebase to devel
$rebase = "devel";
$orig = "rawhide";
}
}
# rebase to the appropriate release, arch
validate_script_output "rpm-ostree rebase fedora/${rebase}/${arch}/iot", sub { m/systemctl reboot/ }, 300;
script_run "systemctl reboot", 0;
@ -29,12 +46,7 @@ sub run {
$self->root_console(tty => 3);
# check booted branch to make sure successful rebase
if ($rebase eq "devel") {
validate_script_output "rpm-ostree status -b", sub { m/devel/ }, 300;
}
if ($rebase eq "stable") {
validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300;
}
validate_script_output "rpm-ostree status -b", sub { m/$rebase/ }, 300;
# rollback and reboot
validate_script_output "rpm-ostree rollback", sub { m/systemctl reboot/ }, 300;
@ -44,10 +56,13 @@ sub run {
$self->root_console(tty => 3);
# check to make sure rollback successful, also account for branched (devel)
if ($rebase eq "devel") {
if ($orig) {
validate_script_output "rpm-ostree status -b", sub { m/$orig/ }, 300;
}
elsif ($rebase eq "devel") {
validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300;
}
if ($rebase eq "stable") {
elsif ($rebase eq "stable") {
validate_script_output "rpm-ostree status -b", sub { m/rawhide|devel/ }, 300;
}
}