From Fedora Project Wiki

(Drop reference to f29/f30)
(make the test case more generic - cover other rpm-ostree-based flavors, not just IoT)
Line 1: Line 1:
= Description =
= Description =
A simple validation test case for rebasing to other versions of Fedora IoT.
A simple validation test case for rebasing to other versions of an rpm-ostree-based Fedora install.


= Setup =
= Setup =
This testcase can be run on either an image or installation, on hardware or in virtualization.
This testcase can be run on either an image or installation, on hardware or in virtualization. Just ensure you have an rpm-ostree-based Fedora system installed (e.g. IoT, CoreOS, Silverblue or Kinoite).


= How to test =
= How to test =
List available branches:
List available branches. On IoT, it will look something like this:
<pre>
<pre>
$ sudo ostree remote refs fedora-iot
$ sudo ostree remote refs fedora-iot
Line 20: Line 20:
fedora-iot:fedora/stable/x86_64/iot
fedora-iot:fedora/stable/x86_64/iot
</pre>
</pre>
Rebase to the stable branch (if testing stable rebase to rawhide):
On other flavors, do {{command|sudo ostree remote refs fedora}} instead. The list will be much longer. Now, pick a target to rebase to. For IoT, if you currently on {{code|fedora/devel/(arch)/iot}}, you might want to rebase to {{code|fedora/stable/(arch)/iot}}; if you are on stable, you might test rebasing to devel. For CoreOS, if you are currently on {{code|fedora/(arch)/coreos/stable}}, you might want to rebase to {{code|fedora/(arch)/coreos/testing}}, and vice versa. For Silverblue or Kinoite, you will be on {{code|fedora/(version)/(arch)/silverblue}} or {{code|fedora/(version)/(arch)/kinoite}}; rebase to a different version number. We will use the IoT "rebase-to-stable" case as an example; adjust the instructions as appropriate for other cases. The instructions use {{code|$(uname -m)}} to determine the correct architecture - put that text whereever the architecture should appear, or just enter the correct architecture manually instead.
<pre>
<pre>
$ sudo rpm-ostree rebase fedora/stable/$(uname -m)/iot
$ sudo rpm-ostree rebase fedora/stable/$(uname -m)/iot
Line 28: Line 28:
$ sudo systemctl reboot
$ sudo systemctl reboot
</pre>
</pre>
Verify that the rebase was successful:
Verify that the rebase was successful - the first listed deployment should be fedora/stable:
<pre>
<pre>
$ rpm-ostree status
$ rpm-ostree status
Line 51: Line 51:
systemctl reboot
systemctl reboot
</pre>
</pre>
Verify rollback was successful:
Verify rollback was successful - now the first listed deployment should be what you started with, in this case fedora/devel:
<pre>
<pre>
$ sudo rpm-ostree status
$ sudo rpm-ostree status
Line 70: Line 70:
</pre>
</pre>


= Results=
= Results =
# Rebase to stable branch successful.
# Rebase to target branch successful.
# Rollback to devel branch successful.
# Rollback to original branch successful.


[[Category:IoT_Acceptance_Test_Cases]]
[[Category:IoT_Acceptance_Test_Cases]]
[[Category:Base_Acceptance_Test_Cases]]

Revision as of 19:36, 16 December 2022

Description

A simple validation test case for rebasing to other versions of an rpm-ostree-based Fedora install.

Setup

This testcase can be run on either an image or installation, on hardware or in virtualization. Just ensure you have an rpm-ostree-based Fedora system installed (e.g. IoT, CoreOS, Silverblue or Kinoite).

How to test

List available branches. On IoT, it will look something like this:

$ sudo ostree remote refs fedora-iot

fedora-iot:fedora/devel/aarch64/iot
fedora-iot:fedora/devel/armhfp/iot
fedora-iot:fedora/devel/x86_64/iot
fedora-iot:fedora/rawhide/aarch64/iot
fedora-iot:fedora/rawhide/armhfp/iot
fedora-iot:fedora/rawhide/x86_64/iot
fedora-iot:fedora/stable/aarch64/iot
fedora-iot:fedora/stable/armhfp/iot
fedora-iot:fedora/stable/x86_64/iot

On other flavors, do sudo ostree remote refs fedora instead. The list will be much longer. Now, pick a target to rebase to. For IoT, if you currently on fedora/devel/(arch)/iot, you might want to rebase to fedora/stable/(arch)/iot; if you are on stable, you might test rebasing to devel. For CoreOS, if you are currently on fedora/(arch)/coreos/stable, you might want to rebase to fedora/(arch)/coreos/testing, and vice versa. For Silverblue or Kinoite, you will be on fedora/(version)/(arch)/silverblue or fedora/(version)/(arch)/kinoite; rebase to a different version number. We will use the IoT "rebase-to-stable" case as an example; adjust the instructions as appropriate for other cases. The instructions use $(uname -m) to determine the correct architecture - put that text whereever the architecture should appear, or just enter the correct architecture manually instead.

$ sudo rpm-ostree rebase fedora/stable/$(uname -m)/iot

Once completed, reboot into the branch:

$ sudo systemctl reboot

Verify that the rebase was successful - the first listed deployment should be fedora/stable:

$ rpm-ostree status
State: idle
AutomaticUpdates: disabled
Deployments:
● ostree://fedora-iot:fedora/stable/x86_64/iot
                   Version: 30.20190921.0 (2019-09-21T18:44:54Z)
                    Commit: ff81204a37c34999f9e19c05e29a23c076fb3c1dc394cc2b6a3a3f0f32af158e
              GPGSignature: Valid signature by C2A3FA9DC67F68B98BB543F47BB90722DBBDCF7C

  ostree://fedora-iot:fedora/devel/x86_64/iot
                   Version: 31.20190925.0 (2019-09-25T14:30:38Z)
                    Commit: 8f28d65fa990add14ccf56c00c458e9d6a4af478bbeb4cc566903ad0c14a443f
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

Rollback to the previous branch:

$ sudo rpm-ostree rollback
Moving '8f28d65fa990add14ccf56c00c458e9d6a4af478bbeb4cc566903ad0c14a443f.0' to be first deployment
...
systemctl reboot

Verify rollback was successful - now the first listed deployment should be what you started with, in this case fedora/devel:

$ sudo rpm-ostree status
...
State: idle
AutomaticUpdates: disabled
Deployments:
● ostree://fedora-iot:fedora/devel/x86_64/iot
                   Version: 31.20190925.0 (2019-09-25T14:30:38Z)
                    Commit: 8f28d65fa990add14ccf56c00c458e9d6a4af478bbeb4cc566903ad0c14a443f
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

  ostree://fedora-iot:fedora/stable/x86_64/iot
                   Version: 30.20190921.0 (2019-09-21T18:44:54Z)
                    Commit: ff81204a37c34999f9e19c05e29a23c076fb3c1dc394cc2b6a3a3f0f32af158e
              GPGSignature: Valid signature by C2A3FA9DC67F68B98BB543F47BB90722DBBDCF7C

Results

  1. Rebase to target branch successful.
  2. Rollback to original branch successful.